rem*_*emh 3 python dataframe pandas
我有一个数据帧,df1看起来像这样:
Name Event Factor1
John A 2
John B 3
Ken A 1.5
....
Run Code Online (Sandbox Code Playgroud)
和另一个数据帧,df2像这样:
Name Event Factor2
John A 1.2
John B .5
Ken A 2
Run Code Online (Sandbox Code Playgroud)
我想在名称和事件两列上加入这两个数据帧,结果列因子1和2相互相乘.
Name Event FactorResult
John A 2.4
John B 1.5
Ken A 3
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?我不确定如何在两列上加入这些.我知道我可以加入然后将两列相乘,但我想知道是否有一种比先合并它们更好的方法,然后乘以和丢弃不需要的列?
你可以合并它们相乘:
merged = df1.merge(df2, on=['Name', 'Event'])
merged['ResultFactor'] = merged.Factor1 * merged.Factor2
result = merged.drop(['Factor1', 'Factor2'], axis=1)
print(result)
Run Code Online (Sandbox Code Playgroud)
输出
Name Event ResultFactor
0 John A 2.4
1 John B 1.5
2 Ken A 3.0
Run Code Online (Sandbox Code Playgroud)
如果您的数据框标记相同,则无需合并,
(df1.set_index(['Name', 'Event'])['Factor1'] * df2.set_index(['Name', 'Event'])['Factor2']).reset_index(name = 'FactorResult')
Name Event FactorResult
0 John A 2.4
1 John B 1.5
2 Ken A 3.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5392 次 |
| 最近记录: |