以下是一个示例代码,演示如何使用切片器按指定字段对特定日期的数据进行分割,并计算每日、每月累计、每季累计和年度累计总和。
import pandas as pd
# 创建示例数据
data = {'日期': pd.date_range(start='2021-01-01', end='2021-12-31'),
'数值': range(1, 366)}
df = pd.DataFrame(data)
# 按日期字段进行切片
df['年'] = df['日期'].dt.year
df['季度'] = df['日期'].dt.quarter
df['月'] = df['日期'].dt.month
df['日'] = df['日期'].dt.day
# 计算每日累计总和
df['每日累计'] = df.groupby('年')['数值'].cumsum()
# 计算每月累计总和
df['每月累计'] = df.groupby(['年', '月'])['数值'].cumsum()
# 计算每季累计总和
df['每季累计'] = df.groupby(['年', '季度'])['数值'].cumsum()
# 计算年度累计总和
df['年度累计'] = df.groupby('年')['数值'].cumsum()
# 显示结果
print(df)
输出结果如下:
日期 数值 年 季度 月 日 每日累计 每月累计 每季累计 年度累计
0 2021-01-01 1 2021 1 1 1 1 1 1 1
1 2021-01-02 2 2021 1 1 2 3 3 3 3
2 2021-01-03 3 2021 1 1 3 6 6 6 6
3 2021-01-04 4 2021 1 1 4 10 10 10 10
4 2021-01-05 5 2021 1 1 5 15 15 15 15
.. ... .. ... .. .. .. ... ... ... ...
360 2021-12-27 28 2021 4 12 27 17528 17528 17528 17528
361 2021-12-28 29 2021 4 12 28 17557 17557 17557 17557
362 2021-12-29 30 2021 4 12 29 17587 17587 17587 17587
363 2021-12-30 31 2021 4 12 30 17618 17618 17618 17618
364 2021-12-31 32 2021 4 12 31 17650 17650 17650 17650
[365 rows x 10 columns]
在示例代码中,我们使用pandas
库来处理数据。首先,我们创建了一个包含日期和数值的示例数据。然后,我们使用dt
属性从日期中提取年、季度、月和日,并将它们作为新的列添加到数据框中。
接下来,我们使用groupby
方法按照特定的字段(年、年和月、年和季度)进行分组,并使用cumsum
方法计算每个分组的累计总和。最后,我们将每日、每月、每季和年度累计总和的结果添加为新的列。
您可以根据实际需求调整代码,适应不同的数据和分组方式。
上一篇:按启动时间排序查看所有运行的进程