对不起,标题似乎很混乱。这个问题真的很简单,但是我很困惑,需要在这里寻求帮助。
我现在拥有的数据框:
New_ID STATE MEAN
0 1 Lagos 7166.101571
1 2 Rivers 2464.065846
2 3 Oyo 1974.699365
3 4 Akwa 1839.126698
4 5 Kano 1757.642462
我想在第i行中创建一个新列,它将计算df [:i,'MEAN']。sum()/ df ['MEAN']。sum()
例如,对于数据框:
ID MEAN
0 1.0 5
1 2.0 10
2 3.0 15
3 4.0 30
4 5.0 40
我想要的输出:
ID MEAN SUBTOTAL
0 1.0 5 0.05
1 2.0 10 0.10
2 3.0 15 0.30
3 4.0 30 0.60
4 5.0 40 1.00
我尝试了
df1['SUbTotal'] = df1.loc[:df1['New_ID'], 'MEAN']/df1['MEAN'].sum()
但它说:
Name: New_ID, dtype: int32' is an invalid key
感谢您的时间
答案 0 :(得分:4)
应该这样做,似乎您正在寻找cumsum
:
df['SUBTOTAL'] = df.MEAN.cumsum() / df.MEAN.sum()
>>> df
ID MEAN SUBTOTAL
0 1.0 5 0.05
1 2.0 10 0.15
2 3.0 15 0.30
3 4.0 30 0.60
4 5.0 40 1.00