2024-05-16 04:26:45 发布
网友
我有以下数据框,其中包含一家公司的财务数据,该公司的会计年度为3月1日至2月最后一天。实际数据框架涵盖多个会计年度
我想汇总每个财政年度的数据。我尝试了以下方法。然而,它似乎是基于日历年,而不是财政年来聚合数据。这就抛出了我的总数,因为总数与实际会计年度不一致
debt_service = df2.groupby(df2['index'].dt.year)['debt_service'].agg(['sum', 'mean', 'max'])
您可以尝试提取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'])
您可以尝试提取period对象的年份
具有列表理解能力
还是用apply
然后,制作groupby:
相关问题 更多 >
编程相关推荐