繁体   English   中英

将Pandas数据框中的列除以列总和

[英]Divide Column in Pandas Dataframe by Sum of Column

我有一个数据框,我想将A列中的每一行除以A列的总和,并在该数据框内添加一个新列。

Example:

        Col A   New Col
        2       .22
        3       .33
        4       .44
Total = 9       1.00

我尝试对A列求和,然后尝试除以“总计”,但是因为总计不是列而是行,所以它不起作用。 我只为新列中的每一行获取NaN。

df['New Col']= (df['ColA']/df.loc['Total']) 

我知道您也可以在一行代码中集成一个总和计算,而不是也创建总计行,但不确定如何做到这一点并且无法在线找到任何内容。

df['New Col']= (df['ColA']/df.sum()) 

想法?

df['new'] = df['ColA'] /  df['ColA'].sum()

应该管用

你很亲密 您要在Col A系列上执行sum()

df['New Col'] = df['Col A']/df['Col A'].sum()

结果如下所示:

>>> df
   Col A   New Col
0      2  0.222222
1      3  0.333333
2      4  0.444444

现在,如果您执行df.sum()则会得到一个具有每列总计的系列:

>>> df.sum()
Col A      9.0
New Col    1.0
dtype: float64

另一种方法是使用transform

df['New Col'] = df['ColA'].transform(lambda x: x / x.sum())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM