python - 如何将来自不同 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)
谢谢你 !!
解决方案
尝试使用df2的set_index
then mul
on 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
推荐阅读
- html - 如何在引导程序中将 div 推到行尾?
- postgresql - 如何在postgresql中创建函数选择所有列
- node.js - Nodejs Put请求抛出400 Bad request Error
- html - 如何快速显示图像
- javascript - 无法将数据从 Angular.js 发布到 Node.js
- laravel-5 - Laravel 雄辩的关系与 2 个外键
- wordpress - 短代码在自定义 wordpress 主题中不起作用
- reactjs - 带有 ReactJS、Webpack 和 Babel 的 Hello World
- json - 使用 POST 方法时 Angular 6 中的 TypeError 循环对象值
- python - 销售速度定义为 sales/running_days