这是我的代码:
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
值替换为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)
关于python - 如何在Pandas Python 3.X中划分两个数据帧,并将NaN,inf值替换为0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53783214/