У меня есть фрейм данных 'A' с 3 столбцами и 4 строками (X1..X4).Некоторые из элементов в 'A' отличны от нуля.У меня есть другой фрейм данных 'B' с 1 столбцом и 4 строками (X1..X4).Я хотел бы создать фрейм данных «C», чтобы в случае, когда «A» имел ненулевое значение, он брал значение из эквивалентной строки в «B»
. Я пробовал a.where (a! =0, c) .. очевидно неверно, поскольку c не является скаляром
A = pd.DataFrame({'A':[1,6,0,0],'B':[0,0,1,0],'C':[1,0,3,0]},index=['X1','X2','X3','X4'])
B = pd.DataFrame({'A':{'X1':1.5,'X2':0.4,'X3':-1.1,'X4':5.2}})
Это ожидаемые результаты:
C = pd.DataFrame({'A':[1.5,0.4,0,0],'B':[0,0,-1.1,0],'C':[1.5,0,-1.1,0]},index=['X1','X2','X3','X4'])