【问题标题】:Group By and Sum Horizontally分组依据和水平求和
【发布时间】:2021-04-21 17:07:43
【问题描述】:

我正在尝试根据季末日期进行分组,并对低于这些季末日期的所有值求和。我在这里发布之前做了一些谷歌搜索。这是我尝试过的代码行。

 grouped_and_summed = grouped_and_summed.groupby(axis=1, level=0).sum()

数据框命名为grouped_and_summed,轴,我认为是1,级别,我认为是0。在我运行代码之后,我得到了与运行代码之前相同的grouped_and_summed.shape .这是我的数据的屏幕截图,导出为 CSV 文件。我将几列合并在一起,以显示 2001Q1 重复、2001Q2 重复等。我想按这些季度结束日期进行分组,并将该行下的所有内容(水平)相加。

这个:grouped_and_summed.head()

给我这个:

           0       1       2       3       4       5      ...   14481   14482  \
index     2001Q1  2001Q2  2001Q3  2001Q4  2002Q1  2002Q2  ...  2011Q2  2011Q3   
RCFD3531       0       1       2       3       4       5  ...   14481   14482   
RCFD3532       0       0       0       0       0       0  ...       0       0   
RCFD3533       0       0       0       0       0       0  ...       0       0   
RCFD3534       0       0       0       0       0       0  ...       0       0   

           14483   14484   14485   14486  
index     2011Q4  2012Q1  2012Q2  2012Q3  
RCFD3531   14483   14484   14485   14486  
RCFD3532       0       0       0       0  
RCFD3533       0       0       0       0  
RCFD3534       0       0       0       0  

[5 rows x 14487 columns]

不知何故,我也想摆脱最上面的那一行。 “索引”上方的那个。

【问题讨论】:

    标签: python python-3.x pandas group-by


    【解决方案1】:

    如果您阅读 csv 时使用

    df = pd.read_csv(filename)
    

    尝试添加skiprows:

    df = pd.read_csv(filename, skiprows=1)
    

    【讨论】:

    • 谢谢,但我正在尝试按(名为索引的行)和总和(低于季度结束日期的所有值)进行分组。
    • 请注意,head() 的输出表示 5 行,字符串行 2001Q12001Q2 等是数据框的行之一,而不是列名。我相信你希望它是列名,这样你就可以求和。
    • 我将索引重命名为 Quarter_End,并运行以下代码:d = {'index':'Quarter_End'} grouped_and_summed = grouped_and_summed.rename(columns=d).groupby('Quarter_End', sort=False, as_index=False)["Total Amount"].sum() 这对我不起作用。我得到的错误是: KeyError: 'Quarter_End'
    • 我认为这很明显。您没有名为“索引”的列,因此您无法重命名它。尝试运行print(grouped_and_summed.dtypes),您将看到那里有哪些列。
    • 我做到了。终于让它工作了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 1970-01-01
    • 1970-01-01
    • 2019-12-18
    相关资源
    最近更新 更多