我有一个如下所示的Pandas DataFrame
df = pd.DataFrame({"ID" : [1,2,3,4],
"Amt" : [100, 200, 300, 400]})
我的目标是找到每个金额的百分比份额,并在此数据框中创建一个新字段。我最终的DataFrame应该看起来像
ID Amt Avg
1 100 10
2 200 20
3 300 30
4 400 40
为实现此目的,我将Amt字段连接到同一DF。然后将其重命名为Avg。然后使用迭代器计算perc
df = pd.concat([df, df['Amt']], axis=1)
df.columns=(['ID', 'Amt', 'Avg'])
for i in range(0,len(df)):
df['Avg'] = ((df['Avg']/df['Amt'].sum())*100)
我是新来的。我已经看到许多人用更简单的代码实现了困难的目标。
那么有人可以帮助我了解比这更好的方法吗?
答案 0 :(得分:0)
我相信您需要:
df['Avg'] = df['Amt']/df['Amt'].sum()*100
print (df)
ID Amt Avg
0 1 100 10.0
1 2 200 20.0
2 3 300 30.0
3 4 400 40.0