使用python中的pandas求每个值占该列的比例

crazycabbage
  • 158

比如我有个dataframe叫df

   Prices  Amount Action  C
0       3      57   Sell  1
1      89      42   Sell  1
2      45      70    Buy -1
3       6      43   Sell  1
4      60      47   Sell  1
5      19      16    Buy -1
6      56      89   Sell  1
7       3      28    Buy -1
8      56      69   Sell  1
9      90      49    Buy -1

目前使用的办法是

df['Prices'].apply(lambda x :x/df['Prices'].sum())

感觉特别慢,有什么更快的办法吗?

回复
阅读 31.8k
2 个回答
✓ 已被采纳
df['Prices'] = df['Prices'] / df['Prices'].sum()

sum()写在lambda表达式外面,否则每次计算一个x占该列的比例时,又需要重新计算sum(),浪费了大量时间.

宣传栏