要按日期合并数据帧并生成NA,可以使用Pandas库的merge方法和resample方法。
下面是一个示例代码:
import pandas as pd
# 创建第一个数据帧
df1 = pd.DataFrame({'日期': pd.to_datetime(['2021-01-01', '2021-01-02', '2021-01-03']),
'数值1': [1, 2, 3]})
# 创建第二个数据帧
df2 = pd.DataFrame({'日期': pd.to_datetime(['2021-01-01', '2021-01-03', '2021-01-04']),
'数值2': [4, 5, 6]})
# 将日期设为索引
df1 = df1.set_index('日期')
df2 = df2.set_index('日期')
# 按日期合并数据帧
merged_df = df1.merge(df2, left_index=True, right_index=True, how='outer')
# 重新采样数据帧,生成NA值
resampled_df = merged_df.resample('D').mean()
print(resampled_df)
输出结果:
数值1 数值2
日期
2021-01-01 1.0 4.0
2021-01-02 2.0 NaN
2021-01-03 3.0 5.0
2021-01-04 NaN 6.0
在示例代码中,首先创建了两个数据帧df1和df2,然后将日期列设为索引。接下来,使用merge方法按日期合并数据帧,how参数设置为'outer'表示使用外连接合并,这样会保留两个数据帧中所有的日期。然后,使用resample方法重新采样数据帧,'D'表示按天重新采样,mean表示取每天的平均值,生成NA值的日期会自动填充为NaN。最后,打印输出结果。
上一篇:按日期合并两个列表