以下是一个示例代码,演示如何按天或按月合并数据集:
import pandas as pd
# 创建示例数据集
data1 = pd.DataFrame({'date': ['2021-01-01', '2021-01-02', '2021-01-03'],
'value1': [1, 2, 3]})
data2 = pd.DataFrame({'date': ['2021-01-02', '2021-01-03', '2021-01-04'],
'value2': [4, 5, 6]})
# 将 'date' 列转换为日期类型
data1['date'] = pd.to_datetime(data1['date'])
data2['date'] = pd.to_datetime(data2['date'])
# 按天合并数据集
merged_data_day = pd.merge(data1, data2, on='date', how='outer')
print("按天合并数据集:")
print(merged_data_day)
# 按月合并数据集
data1['month'] = data1['date'].dt.to_period('M')
data2['month'] = data2['date'].dt.to_period('M')
merged_data_month = pd.merge(data1, data2, on='month', how='outer')
print("按月合并数据集:")
print(merged_data_month)
输出示例:
按天合并数据集:
date value1 value2
0 2021-01-01 1.0 NaN
1 2021-01-02 2.0 4.0
2 2021-01-03 3.0 5.0
3 2021-01-04 NaN 6.0
按月合并数据集:
date_x value1 month date_y value2
0 2021-01-01 1.0 2021-01 2021-01-02 4.0
1 2021-01-01 1.0 2021-01 2021-01-03 5.0
2 2021-01-02 2.0 2021-01 2021-01-02 4.0
3 2021-01-02 2.0 2021-01 2021-01-03 5.0
4 2021-01-03 3.0 2021-01 2021-01-02 4.0
5 2021-01-03 3.0 2021-01 2021-01-03 5.0
6 NaT NaN 2021-01 2021-01-04 6.0
在示例中,首先使用pd.to_datetime()
将日期列转换为日期类型。然后,使用pd.merge()
按照指定的合并条件(这里是按照'date'列或'month'列)进行合并。通过调整how
参数,可以选择使用'outer'、'inner'、'left'或'right'方式进行合并。
对于按月合并数据集的示例,我们还添加了一个'month'列,使用dt.to_period()
将日期转换为月份,并在合并时使用'month'列进行合并。