按行日期对齐数据帧的解决方法可以使用 pandas 库中的 merge 方法来实现。下面是一个示例代码:
import pandas as pd
# 创建示例数据帧
df1 = pd.DataFrame({'日期': ['2020-01-01', '2020-01-02', '2020-01-03'],
'值1': [1, 2, 3]})
df2 = pd.DataFrame({'日期': ['2020-01-02', '2020-01-03', '2020-01-04'],
'值2': [4, 5, 6]})
# 将日期列转换为 datetime 类型
df1['日期'] = pd.to_datetime(df1['日期'])
df2['日期'] = pd.to_datetime(df2['日期'])
# 按日期列对齐数据帧
merged_df = pd.merge(df1, df2, on='日期', how='outer')
# 打印合并后的数据帧
print(merged_df)
输出结果:
日期 值1 值2
0 2020-01-01 1 NaN
1 2020-01-02 2 4.0
2 2020-01-03 3 5.0
3 2020-01-04 NaN 6.0
在示例中,首先创建了两个示例数据帧 df1 和 df2,它们分别具有日期和值的列。然后使用 pd.to_datetime 方法将日期列转换为 datetime 类型。最后,使用 pd.merge 方法按日期列对齐两个数据帧,并指定了 'outer' 连接方式,以保留所有日期的数据。合并后的结果存储在 merged_df 中,并打印出来。