python - 数据帧的平均值
问题描述
假设我有三个具有相同索引和相同列名的数据框(有些列是字符串,有些是数字):df1、df2、df3。
df1
Hour | X1 | X2 | X3 | X4
0 | 10 | H | 2 | -1
1 | 10 | b | 1 | 0
2 | 10 | D | 1 | 0
3 | 20 | L | 1 | 0
df2
Hour | X1 | X2 | X3 | X4
0 | 10 | H | 1 | 1
1 | 10 | b | 1 | 0
2 | 10 | D | 1 | 0
3 | 20 | L | 2 | 0
df3
Hour | X1 | X2 | X3 | X4
0 | 10 | H | 0 | 0
1 | 10 | b | 0 | 0
2 | 10 | D | 0 | 0
3 | 20 | L | 0 | 30
我想要一个新的数据框,它是这些数据框的数值平均值,但保持字符串列不变(所有字符串列都相同)。
df4 =
Hour | X1 | X2 | X3 | X4
0 | 10 | H | 1 | 0
1 | 10 | b | 1 | 0
2 | 10 | D | 1 | 0
3 | 20 | L | 1 | 10
我更喜欢使用 add 函数,因为我必须编写一个 for 循环来访问每个数据帧。谢谢!
解决方案
这样concat
做agg
pd.concat([df1,df2,df3]).groupby(level=0).agg(lambda x : x.mean() if x.dtype=='int64' else x.head(1))
推荐阅读
- javascript - 添加 svg 并使用 javascript 元素
- visual-studio - 从 VS 连接到 Azure Devops 2019 上的 NuGet 源
- python - Keras:多个输出和自定义损失函数的干净实现?
- reactjs - react项目中如何使用jspdf CDN
- angular - Angular parameter seems to have no effect in Style
- javascript - javascript 正则表达式应以有效匹配结尾
- pyvmomi - 使用 VMware SDK 触发主机自定义 shell 命令
- c# - 外部表在 c# 中不是预期的格式 - 部署后
- gradle - 如何遍历目录树,找到jar文件并将它们复制到gradle构建脚本中构建阶段之后的单个目录
- less - 更少的 CSS 映射问题