我有一个包含数百列的 Dataframe ,下面是一个简单的示例df:
date | A | B | C 2020-01-01 | 10| 40| 50 2020-02-01 | 20| 60| 100
但我希望占行方向总数的百分比:
date | A | B | C 2020-01-01 | 0.1 | 0.4 | 0.5 2020-02-01 | 0.11| 0.33 | 0.55
在Pandas身上我该怎么做?
v8wbuo2f1#
假设您要划分除date列之外的所有列
date
cols = df.filter(regex='^(?!date$)').columns df[cols] = df[cols].div(df[cols].sum(axis=1), axis=0).round(2) # or val = df.filter(regex='^(?!date$)') df.update(val.div(val.sum(axis=1), axis=0).round(2))
print(df) date A B C 0 2020-01-01 0.10 0.40 0.50 1 2020-02-01 0.11 0.33 0.56
dluptydi2#
很简单:
(df[['A', 'B', 'C']].T / df[['A', 'B', 'C']].sum(axis = 1)).T
2条答案
按热度按时间v8wbuo2f1#
假设您要划分除
date
列之外的所有列dluptydi2#
很简单: