python - 如何在 Pandas Python 3.X 中划分两个数据帧,并将 NaN、inf 值替换为 0
问题描述
这是我的代码:
mean= all_data.groupby(['Id'])[features].agg('mean').reset_index()
all_data = pd.merge(all_data, mean, suffixes=["", "_mean"], how='left', on=['Id'])
现在,我想向 all_data 框架添加另一列,如下所示:
meanDivide = all_data[features] / mean
all_data = pd.merge(all_data, meanDivide, suffixes=["", "_meanDivide"], how='left', on=['Id'])
我想将它加入Id
all_data。然后Nan
inf
在 pandas 中将 value 替换为 0。我几乎花了一整天的时间在这上面,但还是有问题。
编辑:我all_data
看起来像这样:
ID 行 1 行 2 1 6 0 2 5 3 3 2 2 4 0 0 5 3 8
features
变量,像这样:
features = ['Row1','Row2']
CSV 格式的数据:
Id,Row1,Row2
1,6,0
2,5,3
3,2,2
4,0,0
5,3,8
解决方案
首先你不需要merge
newdf=all_data.groupby(['Id'])[features].transform('mean')
newdf2=all_data[features]/newdf
pd.concat([all_data,newdf.add_suffix('_mean'),newdf2.add_suffix('_meanDivide')],axis=1)
推荐阅读
- java - 在android中更改工具栏标题
- javascript - 从查询结果向 JavaScript 对象添加元素
- android - InflateException - 浮动操作按钮
- python - Peewee:获取带有特定种子的随机记录
- android - Gradle 编译到实现
- java - 将字母从按钮传输到 jLabel 组件
- firebase - 使用firebase云消息传递http api订阅主题很慢
- npoi - NPOI - 确定段落前的标题
- python - 使用带有手动 bin 的 Python 绘制直方图
- image - 为什么带有结构化数据的 AMP 需要至少 1200 像素宽的图片?