我目前正在尝试按各自的日期/时间列合并两个数据框。有关我的每个数据集的信息如下:
data1.head(5)
DATE AA ... AB AB2
0 2011-01-01 00:30:00 6135.998518 ... 0.0 80.331500
1 2011-01-01 01:00:00 5711.638352 ... 0.0 74.380500
2 2011-01-01 01:30:00 5455.901902 ... 0.0 82.742500
3 2011-01-01 02:00:00 5130.634418 ... 0.0 102.091667
4 2011-01-01 02:30:00 4854.064390 ... 0.0 113.467667
[5 rows x 30 columns]
data2.head(5)
DATE A DEM A RRP ... AA7 RRP AB DEM AB RRP
0 2006/01/01 00:30:00 8013.27833 19.67 ... 36.00 5657.67500 20.03
1 2006/01/01 01:00:00 7726.89167 18.56 ... 33.00 5460.39500 18.66
2 2006/01/01 01:30:00 7372.85833 19.09 ... 33.01 5766.02500 20.38
3 2006/01/01 02:00:00 7071.83333 17.40 ... 33.02 5503.25167 18.59
4 2006/01/01 02:30:00 6865.44000 17.00 ... 33.00 5214.01500 17.53
[5 rows x 11 columns]
我正在尝试的代码如下。
将numpy导入为np 将熊猫作为pd导入
data1=pd.read_csv("1.csv")
data2=pd.read_csv("2.csv")
mergeddf = pd.merge(data1[['DATE','AA','AA2','AB']],
data2[['DATE','A RRP']],on='DATE')
mergeddf.to_csv("out.csv",index=False)
这是我的mergeddf的样子:
因此,如您所见,代码仅合并标头,而不合并数据。由于我的日期之一始于2011
,而我的日期之一始于2006
,因此我想将它们合并,以便它们相交,这样,只有当它们的日期相交时,我才开始获取数据,我要实现这一目标?
谢谢
答案 0 :(得分:3)
DATE列的类型可能是object,因此您不能在格式不同的日期上连接(例如2006/01/01与2006-01-01)。您需要更改它们以键入datetime。
data1['DATE'] = pd.to_datetime(data1['DATE'])
data2['DATE'] = pd.to_datetime(data2['DATE'])
mergeddf = pd.merge(data1[['DATE','AA','AA2','AB']],
data2[['DATE','A RRP']],on='DATE')