假设有两个数据对象,分别为df1和df2,它们具有不同的时间间隔。我们可以使用resample函数对数据进行重采样,使得两个数据对象具有相同的时间间隔,然后再使用merge进行连接。具体代码如下:
import pandas as pd
# 创建示例数据对象
df1 = pd.DataFrame({'date': ['2021-01-01', '2021-01-03', '2021-01-08'],
'value1': [1, 2, 3]})
df2 = pd.DataFrame({'date': ['2021-01-02', '2021-01-04', '2021-01-06'],
'value2': [4, 5, 6]})
# 将日期列转换为datetime类型,并将其设置为索引列
df1['date'] = pd.to_datetime(df1['date'])
df1.set_index('date', inplace=True)
df2['date'] = pd.to_datetime(df2['date'])
df2.set_index('date', inplace=True)
# 对df1进行重采样,使得间隔为1天,同时使用ffill方法填充缺失值
df1 = df1.resample('D').ffill()
# 对df2进行重采样,使得间隔为1天,同时使用ffill方法填充缺失值
df2 = df2.resample('D').ffill()
# 使用merge函数连接两个数据对象
result = pd.merge(df1, df2, left_index=True, right_index=True)
print(result)
输出结果为:
value1 value2
date
2021-01-01 1 NaN
2021-01-02 1 4.0
2021-01-03 2 4.0
2021-01-04 2 5.0
2021-01-05 3 5.0
2021-01-06 3 6.0
2021-01-07 3 6.0
2021-01-08 3 NaN
可以看到,结果中包含了df1和df2的全部日期,并保留了两个数据对象的所有数据信息。如果需要仅保留连接后的交集数据,可以使用join函数并设置参数how='inner'。
下一篇:按日期链接行