我刚刚使用pandas read_excel将两个excelsheets加载到2个数据帧中。
是否可以使用基于row和col索引的数据帧B的单元格数据在数据帧A的单元格上应用?
以下是一个例子:
Dataframe A
Dataframe B
假设applymay使用所有Dataframe A的行[i]的简单函数乘以Dataframe B的cell [i] [0]
感谢任何帮助
答案 0 :(得分:1)
您可以使用广播,我不认为df.applymap
适用于此处:
df_new = pd.DataFrame(A.values * B.values)
演示:
In [987]: A
Out[987]:
Col1 Col2
0 1 2
1 2 3
2 3 4
In [988]: B
Out[988]:
Col1
0 10
1 20
2 30
In [989]: pd.DataFrame(A.values * B.values, columns=A.columns)
Out[989]:
Col1 Col2
0 10 20
1 40 60
2 90 120
您可以考虑使用df.apply
:
In [1004]: A.apply(lambda x: x * B.Col1.values, 0)
Out[1004]:
Col1 Col2
0 10 20
1 40 60
2 90 120
slight simplification使用df.mul
:
In [1107]: A.mul(B.Col1, 0)
Out[1107]:
Col1 Col2
0 10 20
1 40 60
2 90 120