【Pandas】时间序列数据按年聚合

2023-12-13 13:36:08

想做什么

有一个时间序列数据,希望按财政年度而不只是按年对其进行汇总。

例如以下“账单信息”,并希望按财政年度对其进行总计。

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() 是关键。

文章来源:https://blog.csdn.net/Allan_lam/article/details/134964264
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。