如何在两个数据帧中使用applymap进行列式乘法?

时间:2017-08-22 09:27:30

标签: python pandas dataframe

我刚刚使用pandas read_excel将两个excelsheets加载到2个数据帧中。

是否可以使用基于row和col索引的数据帧B的单元格数据在数据帧A的单元格上应用?

以下是一个例子:

Dataframe A

Dataframe A

Dataframe B

Dataframe B

假设applymay使用所有Dataframe A的行[i]的简单函数乘以Dataframe B的cell [i] [0]

感谢任何帮助

1 个答案:

答案 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