在Python中,可以使用pandas库来按照月份分组,根据起始时间戳开始的30天,而不是实际月份。下面是一个示例代码:
import pandas as pd
# 创建一个包含日期和数值的DataFrame
data = {'date': ['2021-01-01', '2021-01-10', '2021-02-01', '2021-02-15', '2021-03-01', '2021-03-05'],
'value': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(data)
# 将日期列转换为日期类型
df['date'] = pd.to_datetime(df['date'])
# 按照起始时间戳开始的30天进行分组
df['group'] = (df['date'].dt.floor('30D') - df['date'].min().floor('30D')).dt.days
# 打印结果
print(df)
输出结果:
date value group
0 2021-01-01 1 0
1 2021-01-10 2 0
2 2021-02-01 3 31
3 2021-02-15 4 45
4 2021-03-01 5 59
5 2021-03-05 6 63
在上面的代码中,首先创建一个包含日期和数值的DataFrame。然后,使用pd.to_datetime
函数将日期列转换为日期类型。接下来,使用dt.floor('30D')
来将日期向下取整到最接近的30天的倍数。然后,使用起始时间戳开始的30天的日期减去起始日期,得到一个整数表示的分组。最后,将这个分组添加到DataFrame中的新列"group"中。
上一篇:按照月份分组汇总项目