与Pandas DataFrame合并的Probelem

时间:2018-12-28 16:27:45

标签: pandas dataframe merge

我尝试向我们提供了熊猫合并功能,但收到了一条键盘错误消息。密钥具有相同的类型和名称,这可能是问题所在: 我的代码在这里:

print(data_EURUSD.head())
print(data_XAUUSD.head())
print(data_EURUSD.index)
print(data_XAUUSD.index)

data=pd.merge(data_EURUSD, data_XAUUSD, on='date', how='left')

print(data)

结果:

                 askclose

date                         
2017-05-19 21:00:00   1.12090
2017-05-21 21:00:00   1.11999
2017-05-22 21:00:00   1.12402
2017-05-23 21:00:00   1.11840
2017-05-24 21:00:00   1.12195

                 askclose
date                         
2017-01-20 22:00:00   1209.47
2017-01-23 22:00:00   1218.46
2017-01-24 22:00:00   1209.41
2017-01-25 22:00:00   1201.18
2017-01-26 22:00:00   1189.04

 DatetimeIndex(['2017-05-19 21:00:00', '2017-05-21 21:00:00',

           '2018-12-26 22:00:00', '2018-12-27 22:00:00'],
          dtype='datetime64[ns]', name='date', length=500, freq=None)

 DatetimeIndex(['2017-01-20 22:00:00', '2017-01-23 22:00:00',

           '2018-12-26 22:00:00', '2018-12-27 22:00:00'],
          dtype='datetime64[ns]', name='date', length=500, freq=None)

....

KeyError: 'date'

1 个答案:

答案 0 :(得分:1)

此错误是因为您有一个日期时间json_decode,“ date”不是一个index,而是一个column值。

您应该这样做:

index

在这些情况下,我更喜欢使用pd.merge(data_EURUSD, data_XAUUSD, how='left',right_index=True,left_index=True) ,它已经基于共享索引寻求加入。代码为:

pd.df.join()