以下是一个示例代码,展示如何按日期范围对一个列进行分组,并将值应用于第二列的列表:
import pandas as pd
# 创建示例数据
data = {'日期': ['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04', '2020-01-05'],
'数值': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)
# 将日期列转换为日期类型
df['日期'] = pd.to_datetime(df['日期'])
# 按日期范围进行分组,并将值应用于第二列的列表
df['日期范围'] = pd.cut(df['日期'], bins=pd.date_range(start='2020-01-01', end='2020-01-05', freq='2D'))
df_grouped = df.groupby('日期范围')['数值'].apply(list)
print(df_grouped)
输出结果如下:
日期范围
(2020-01-01, 2020-01-03] [10, 20, 30]
(2020-01-03, 2020-01-05] [40, 50]
Name: 数值, dtype: object
以上代码首先将日期列转换为日期类型,然后使用pd.cut()
函数将日期分成指定范围的区间。接着,使用groupby()
函数按日期范围对数据进行分组,并使用apply(list)
将每个分组中的数值列转换为列表。最后,输出每个日期范围对应的数值列表。
上一篇:按日期范围对数据框进行子集化