想做什么
有一个时间序列数据,希望按财政年度而不只是按年对其进行汇总。
例如以下“账单信息”,并希望按财政年度对其进行总计。
import pandas as pd
# 样本数据
data = {
'计费月份': ['2020-02-01', '2020-05-01', '2021-02-01', '2021-04-01'],
'计费ID': [1, 2, 3, 4],
'计费金额': [1000, 2000, 1500, 2500],
'顾客姓名': ['AA', 'BB', 'CC', 'DD']
}
df = pd.DataFrame(data)
# 将计费月份转换为日期类型
df['计费月份'] = pd.to_datetime(df['计费月份'])
df
更好的做法
# 计算财政年份的函数
def calc_fiscal_year(date):
if date.month >= 4:
return date.year
else:
return date.year - 1
# 添加财政年度列
df['财政年度'] = df['计费月份'].apply(calc_fiscal_year)
# 计算每年的总账单金额
result = df.groupby('财政年度')['计费金额'].sum().reset_index()
result
一开始计算财政年度可能很痛苦。一旦意识到这一点,正好就是编程的创意来源,因此calc_fiscal_year() 是关键。