如何获得的百分比总数为每一行Pandas?

3okqufwl  于 2023-03-06  发布在  其他
关注(0)|答案(2)|浏览(130)

我有一个包含数百列的 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身上我该怎么做?

v8wbuo2f

v8wbuo2f1#

假设您要划分除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
dluptydi

dluptydi2#

很简单:

(df[['A', 'B', 'C']].T / df[['A', 'B', 'C']].sum(axis = 1)).T

相关问题