如何按会计年度对Pandas数据进行分组?

2024-05-16 04:26:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据框,其中包含一家公司的财务数据,该公司的会计年度为3月1日至2月最后一天。实际数据框架涵盖多个会计年度

^{tb1}$

我想汇总每个财政年度的数据。我尝试了以下方法。然而,它似乎是基于日历年,而不是财政年来聚合数据。这就抛出了我的总数,因为总数与实际会计年度不一致

debt_service = df2.groupby(df2['index'].dt.year)['debt_service'].agg(['sum', 'mean', 'max'])

Tags: 数据方法框架service公司汇总财政df2
1条回答
网友
1楼 · 发布于 2024-05-16 04:26:45

您可以尝试提取period对象的年份

data = [ {"period" : pd.Period('2018Q1', freq='Q-FEB'), "value" : 1000},
        {"period" : pd.Period('2018Q2', freq='Q-FEB'), "value" : 1000},
        {"period" : pd.Period('2018Q3', freq='Q-FEB'), "value" : 1000},
        {"period" : pd.Period('2018Q4', freq='Q-FEB'), "value" : 1000},
        {"period" : pd.Period('2019Q1', freq='Q-FEB'), "value" : 2000},
        {"period" : pd.Period('2019Q2', freq='Q-FEB'), "value" : 2000},
        {"period" : pd.Period('2019Q3', freq='Q-FEB'), "value" : 2000},
        {"period" : pd.Period('2019Q4', freq='Q-FEB'), "value" : 2000}]

df = pd.DataFrame(data)

具有列表理解能力

df["fiscal_year"] = [x.qyear for x in df["period"].values]

还是用apply

def get_fiscal_year(row):
  row["fiscal_year"] = row["period"].qyear
  return row

df["fiscal_year"] = None
df = df.apply(get_fiscal_year, axis=1)

然后,制作groupby:

df.groupby('fiscal_year')['debt_service'].agg(['sum','mean','max'])

相关问题 更多 >