以下是按最接近的较小或相等日期合并数据框的代码示例:
import pandas as pd
# 创建第一个数据框
df1 = pd.DataFrame({'日期': ['2021-01-01', '2021-01-03', '2021-01-05'],
'数值1': ['A', 'B', 'C']})
# 创建第二个数据框
df2 = pd.DataFrame({'日期': ['2021-01-02', '2021-01-04'],
'数值2': ['X', 'Y']})
# 将日期列转换为日期类型
df1['日期'] = pd.to_datetime(df1['日期'])
df2['日期'] = pd.to_datetime(df2['日期'])
# 使用merge_asof按最接近的较小或相等日期合并数据框
merged_df = pd.merge_asof(df1, df2, on='日期')
# 打印合并后的数据框
print(merged_df)
运行上述代码会输出以下结果:
日期 数值1 数值2
0 2021-01-01 A NaN
1 2021-01-03 B X
2 2021-01-05 C Y
在这个例子中,我们使用了merge_asof
函数来按最接近的较小或相等日期合并数据框。该函数会根据指定的键(这里是日期列)将两个数据框进行合并。合并后的数据框中,对于第一个数据框中的每一行,会找到第二个数据框中最接近的较小或相等日期的行,并将其合并到一起。如果找不到合适的匹配行,则填充NaN值。