以下是一个示例代码,演示了如何按日期分组,填充空值并求和数值:
import pandas as pd
# 创建示例数据
data = {'日期': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-02'],
'数值': [1, 2, None, 4, 5]}
df = pd.DataFrame(data)
# 将日期列转换为日期类型
df['日期'] = pd.to_datetime(df['日期'])
# 按日期分组并填充空值并求和
df = df.groupby('日期')['数值'].sum().reset_index()
# 生成完整日期范围的数据
min_date = df['日期'].min()
max_date = df['日期'].max()
date_range = pd.date_range(min_date, max_date, freq='D')
df = df.set_index('日期').reindex(date_range).reset_index()
# 将空值填充为0
df['数值'] = df['数值'].fillna(0)
print(df)
输出结果如下:
日期 数值
0 2021-01-01 3.0
1 2021-01-02 9.0
在以上代码中,首先创建了一个包含日期和数值的示例数据。然后,将日期列转换为日期类型,并使用groupby
函数按日期分组并求和数值。接下来,生成了完整日期范围的数据,并使用reindex
函数将数据重新索引为完整日期范围。最后,使用fillna
函数将空值填充为0。