【问题标题】:Sum Rows at Bottom of Pandas DataframePandas 数据框底部的总和行数
【发布时间】:2021-07-24 19:52:54
【问题描述】:

尝试对 pandas 中特定列的行求和。

有:

df =

name    age gender  sales   commissions
joe     25  m       100     10
jane    55  f       40      4

想要:

df =
name    age gender  sales   commissions
joe     25  m       100     10
jane    55  f       40      4
            
Total               140     14

我已经尝试过这个选项,但它聚合了所有内容:

df.loc['Total'] = df.sum()

【问题讨论】:

    标签: python pandas dataframe sum .loc


    【解决方案1】:

    您只能对感兴趣的列求和:

    ## recreate your data
    df = pd.DataFrame({'name':['joe','jane'],'age':[25,55],'sales':[100,40],'commissions':[10,4]})
    
    df.loc['Total'] = df[['sales','commissions']].sum()
    

    结果:

    >>> df
           name   age  sales  commissions
    0       joe  25.0  100.0         10.0
    1      jane  55.0   40.0          4.0
    Total   NaN   NaN  140.0         14.0
    

    如果您不希望出现 NaN,可以将它们替换为空字符串:df = df.fillna('')

    结果:

    >>> df
           name   age  sales  commissions
    0       joe  25.0  100.0         10.0
    1      jane  55.0   40.0          4.0
    Total              140.0         14.0
    

    【讨论】:

    • 谢谢。有没有办法删除 NaN?
    • DataFrame 的每个条目都必须填写,但您可以将NaN 替换为空字符串,这样当您打印 DataFrame 时,它​​不会显示。但是你应该知道,那些看起来为空的条目,实际上包含了一个字符串对象。
    • 没问题!很高兴听到我的回答很有帮助
    猜你喜欢
    • 2015-12-29
    • 2020-02-24
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多