【问题标题】:Probelem with Pandas dataframe merge熊猫数据框合并的问题
【发布时间】:2019-05-26 10:52:46
【问题描述】:

我尝试使用 pandas 合并功能,但收到一条 keyerror 消息。密钥具有相同的类型和相同的名称,可能是什么问题: 我的代码在这里:

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'

【问题讨论】:

  • 很高兴为您提供帮助,欢迎来到 Stack Overflow。如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。

标签: pandas dataframe merge


【解决方案1】:

这个错误是因为你有一个日期时间index,'date' 不是column 它是一个index 值。

你应该这样做:

pd.merge(data_EURUSD, data_XAUUSD, how='left',right_index=True,left_index=True)

在这些情况下,我更喜欢使用 pd.df.join(),它已经根据共享索引寻求加入。代码是:

data = data_EURUSD.join(data_XAUUSD,how='left')

【讨论】:

    猜你喜欢
    • 2021-03-25
    • 2013-09-26
    • 1970-01-01
    • 2023-03-11
    • 2014-07-02
    • 2018-02-02
    • 2017-06-11
    • 2016-01-01
    相关资源
    最近更新 更多