Сравнение двух датафреймов с большим количеством столбцов
Есть два датафрейма с одинаковыми названиями столбцов, но с разными значениями.
Необходимо сравнить значения в столбцах с одинаковым названием в этих двух датафреймах и создать новый датафрейм NewDf, в котором будет 1 если portfolio_experiment > _10days_roll и 0 - если меньше.
Я пробовал через:
mergedStuff = pd.merge(portfolio_experiment, _10days_roll, on=['date'], how='inner')
mergedStuff.tail()
Но не могу понять как обработать и сравнить например DOCU_x с DOCU_y и так по всем столбцам ?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
В Pandas переопределены операторы сравнения для DataFrame'ов - воспользуйтесь ими.
Пример:
In [207]: d1 = pd.DataFrame([[1,2,3], [4,5,6], [7,8,9]], columns=list("abc"))
In [208]: d2 = pd.DataFrame([[2,2,1], [7,8,4], [1,2,9]], columns=list("abc"))
In [209]: d1
Out[209]:
a b c
0 1 2 3
1 4 5 6
2 7 8 9
In [210]: d2
Out[210]:
a b c
0 2 2 1
1 7 8 4
2 1 2 9
In [211]: d1 < d2
Out[211]:
a b c
0 True False False
1 True True False
2 False False False
In [212]: (d1 < d2).astype("int8")
Out[212]:
a b c
0 1 0 0
1 1 1 0
2 0 0 0


