Car*_*llo 11 python dataframe pandas
我有一个这样的数据框:
我想计算新的列日的平均值salary_1,salary_2和salary_3.
df = pd.DataFrame({'salary_1':[230,345,222],'salary_2':[235,375,292],'salary_3':[210,385,260]})
salary_1 salary_2 salary_3
0 230 235 210
1 345 375 385
2 222 292 260
Run Code Online (Sandbox Code Playgroud)
我怎样才能以最有效的方式在熊猫中做到这一点?实际上我有更多列,我不想一个一个地写这个.
像这样的东西:
salary_1 salary_2 salary_3 salary_mean
0 230 235 210 (230+235+210)/3
1 345 375 385 ...
2 222 292 260 ...
Run Code Online (Sandbox Code Playgroud)
谢谢!
Ale*_*lex 15
使用.mean.通过指定轴,您可以获取行或列的平均值.
df['average'] = df.mean(axis=1)
df
Run Code Online (Sandbox Code Playgroud)
回报
salary_1 salary_2 salary_3 average
0 230 235 210 225.000000
1 345 375 385 368.333333
2 222 292 260 258.000000
Run Code Online (Sandbox Code Playgroud)
如果您只想要几个平均值,则只能选择那些列.例如
df['average_1_3'] = df[['salary_1', 'salary_3']].mean(axis=1)
df
Run Code Online (Sandbox Code Playgroud)
回报
salary_1 salary_2 salary_3 average_1_3
0 230 235 210 220.0
1 345 375 385 365.0
2 222 292 260 241.0
Run Code Online (Sandbox Code Playgroud)
Mr.*_*ark 10
解决此问题的简单方法如下所示:
col = df.loc[: , "salary_1":"salary_3"]
Run Code Online (Sandbox Code Playgroud)
其中“ salary_1”是开始列名称,“ salary_3”是结束列名称
df['salary_mean'] = col.mean(axis=1)
df
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个带有新列的新数据框,该列将显示所有其他列的均值。 当您拥有大量列时,此方法非常有用;当您只需要对某些选定的列而不是全部列执行时,此方法也很有用。
| 归档时间: |
|
| 查看次数: |
15684 次 |
| 最近记录: |