【问题标题】:How to add a total income based on category如何根据类别添加总收入
【发布时间】:2019-10-07 09:38:36
【问题描述】:

我有这样的数据框

我想根据类别对客户的收入进行分组和汇总

首先:我想按月份对客户的收入进行分组

第二:客户收入按月份分组后,我想按进口或出口分组

第三:我想根据“费用、利息和成本”对客户的收入进行分组

第四:我想根据“费用、利息和成本”添加客户的总收入

我的预期

这是我最后的代码

df = df.groupby ("[信息", "名称"] )。 agg("总和)

我很困惑python中的“合并和单元格”以及基于类别的总和

【问题讨论】:

    标签: python pandas xlsxwriter


    【解决方案1】:

    您可以使用具有很大灵活性的pivot_table

    In [11]: df
    Out[11]:
      Month   Name      Info   Ex/Im  Income
    0   Jan  Alice    charge  export     100
    1   Jan  Alice  interest  import      10
    2   Jan    Bob      cost  export     200
    3   Feb  Alice    charge  export     100
    4   Jan    Bob      cost  export     200
    
    In [12]: df.pivot_table(index="Name", columns=["Month", "Ex/Im", "Info"], values="Income", aggfunc='sum')
    Out[12]:
    Month    Feb    Jan
    Ex/Im export export          import
    Info  charge charge   cost interest
    Name
    Alice  100.0  100.0    NaN     10.0
    Bob      NaN    NaN  400.0      NaN
    
    In [13]: df.pivot_table(index="Name", columns=["Month", "Ex/Im", "Info"], values="Income", aggfunc='sum', fill_value=0)
    Out[13]:
    Month    Feb    Jan
    Ex/Im export export        import
    Info  charge charge cost interest
    Name
    Alice    100    100    0       10
    Bob        0      0  400        0
    

    【讨论】:

    • @andy_Hanyden 我可以添加来自差异数据框的值的列吗?
    • 为什么我得到 - 5??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    相关资源
    最近更新 更多