在Pandas和列中,将值更改为和的比例

  • 本文关键字:和的 Pandas python pandas
  • 更新时间 :
  • 英文 :


如果我有以下DataFrame,我如何将每行中的值转换为列总数的比例?

输入:

pd.DataFrame(
{'A': {0: 1, 1: 1},
'B': {0: 1, 1: 2},
'C': {0: 1, 1: 9},})

输出:

pd.DataFrame(
{'A': {0: 0.5, 1: 0.5},
'B': {0: 0.333, 1: 0.666},
'C': {0: 1, 0.1: 0.9},})

apply呢?

import pandas as pd
df = pd.DataFrame(
{'A': {0: 1, 1: 1},
'B': {0: 1, 1: 2},
'C': {0: 1, 1: 9},})
df = df.apply(lambda col: col / sum(col))
print(df)
# A         B    C
# 0  0.5  0.333333  0.1
# 1  0.5  0.666667  0.9

Try

out = df.div(df.sum())
Out[549]: 
A         B    C
0  0.5  0.333333  0.1
1  0.5  0.666667  0.9

最新更新