在“日期”合并熊猫中的数据框仅合并标头

时间:2019-02-17 23:12:03

标签: python pandas numpy merge

我目前正在尝试按各自的日期/时间列合并两个数据框。有关我的每个数据集的信息如下:

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的样子:

mergeddf

因此,如您所见,代码仅合并标头,而不合并数据。由于我的日期之一始于2011,而我的日期之一始于2006,因此我想将它们合并,以便它们相交,这样,只有当它们的日期相交时,我才开始获取数据,我要实现这一目标?

谢谢

1 个答案:

答案 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')