首页 > 解决方案 > 如何将来自不同 DataFrame 的列相乘?(Python)

问题描述

我正在尝试通过将 df1 的“工资”与 data2 的 df2 的相应值(男性的男性值和女性的女性值)混合来创建新的 DataFrame。我尝试分组,但我无法解决这个问题。

import pandas as pd

data1 = {'gender':['male', 'female', 'male', 'male'],
    'Age':[20, 20, 19, 19],
    'Wage': [1200, 1300, 1250, 1300]}

data2 = {'male': [0.12],
     'female': [0.13]}

df2 = pd.DataFrame(data2)


df1 = pd.DataFrame(data1) 

我想将 new_df 构建为:

new_data = {'gender':['male', 'female', 'male', 'male'],
'Age':[20, 20, 19, 19],
'New_Wage':[1200*0.12, 1300*0.13, 1250*0.12, 1300*0.12]}
df3 = pd.DataFrame(new_data)

谢谢你 !!

标签: pythonpandasdataframedata-science

解决方案


尝试使用df2的set_indexthen mulon level=0 。T

然后reset_index+rename列:

df3 = df1.set_index(['gender', 'Age'])
df3['Wage'] = df3['Wage'].mul(df2.T[0], level=0)
df3 = df3.reset_index().rename(columns={'Wage': 'New_Wage'})

df3

   gender  Age  New_Wage
0    male   20     144.0
1  female   20     169.0
2    male   19     150.0
3    male   19     156.0

推荐阅读