在数据分析中,有时需要将两个数据帧(DataFrame)合并在一起,即使它们没有公共列。这种情况下,可以使用日期作为合并的键。假设我们有两个数据帧 df1
和 df2
,它们分别包含不同的日期范围,但都有日期列。
NaN
填充。df1
中的所有日期,并尝试匹配 df2
中的日期,匹配不上的部分用 NaN
填充。df2
中的所有日期,并尝试匹配 df1
中的日期,匹配不上的部分用 NaN
填充。假设我们有两个数据帧 df1
和 df2
,它们分别包含不同的日期范围:
import pandas as pd
# 创建示例数据帧
df1 = pd.DataFrame({
'date': pd.date_range(start='1/1/2020', end='1/5/2020'),
'value1': range(5)
})
df2 = pd.DataFrame({
'date': pd.date_range(start='1/3/2020', end='1/7/2020'),
'value2': range(5, 10)
})
# 外连接合并
merged_df = pd.merge_asof(df1.sort_values('date'), df2.sort_values('date'), on='date', direction='nearest')
print(merged_df)
pd.to_datetime
进行转换。NaN
填充。date
列为索引:df1.set_index('date', inplace=True)
df2.set_index('date', inplace=True)
merged_df = pd.merge_asof(df1, df2, left_index=True, right_index=True, direction='nearest')
通过这些方法,可以有效地合并基于日期的两个数据帧,确保数据的完整性和分析的准确性。
领取专属 10元无门槛券
手把手带您无忧上云