如何在Dataframe中找到字段的百分比份额?

时间:2019-06-16 14:14:37

标签: python pandas dataframe

我有一个如下所示的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)

我是新来的。我已经看到许多人用更简单的代码实现了困难的目标。
那么有人可以帮助我了解比这更好的方法吗?

1 个答案:

答案 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