У меня есть два фрейма данных, скажем, df1 и df2, оба из этих фреймов очень большие, имеют более 1 миллиона строк и 1000 столбцов.Теперь у df1 есть столбец, скажем, X, в котором есть символы (как показано ниже).И df2 имеет 900+ столбцов, и каждый из них должен быть изменен на основе df1.
df1:
Index ColX ColY
100 C R
101 T Z
102 A Y
... .. ..
df2:
Index ColA ColB ColC ColD ... ...
100 0.033 0.10 0.22 1.22 ... ...
101 1.77 1.34 0.45 1.90 ... ...
102 0.88 1.56 1.99 0.99 ... ...
... ... ... ... ... ... ...
Условие, которое должно быть применено:
Если столбцы в df2> = 0 и <1.5, затем замените эти значения на значения Col X, соответствующие этому индексу.</p>
Elif столбцы в df2> = 1.5 и <= 2 затем заменяют эти значения на значения Col Y, соответствующие этому индексу </p>
Ожидаемый результат:
df2:
Index ColA ColB ColC ColD ... ...
100 C C C C ... ...
101 Z T T Z ... ...
102 A Y Y A ... ...
... ... ... ... ... ... ...
Я пробовал этоway:
for v in df2.columns.tolist():
df2 = df2.loc[(df2[v] >= 0) & (df2[v] < 1.5) , v] = df1['ColX']
Иногда это работает, иногда нет (для первого случая), но этот метод очень медленный.У меня очень большой файл.
Пожалуйста, кто-нибудь может сказать мне любой эффективный способ сделать это.Заранее благодарен.