【问题标题】:error when using 'pd.merge' merging on time data [duplicate]使用“pd.merge”合并时间数据时出错[重复]
【发布时间】:2019-06-13 20:47:50
【问题描述】:

我目前正在尝试使用以下代码合并两个 csv 文件:

import pandas as pd
data1 = pd.read_csv("QLD.csv") 
data2 = pd.read_csv("VIC.csv")
result = pd.merge(data1[['REGION', 'TOTALDEMAND', 'RRP']], data2[['REGION', 'TOTALDEMAND', 'RRP']], on='SETTLEMENTDATE')
result.to_csv("masterfile.csv", index=False)

这是我的每个 csv 文件的头部的样子:

当我运行我的代码时,我收到了这个错误:

Traceback (most recent call last):
  File "/Users/george/Desktop/collate/asdas.py", line 4, in <module>
    result = pd.merge(data1[['REGION', 'TOTALDEMAND', 'RRP']], data2[['REGION', 'TOTALDEMAND', 'RRP']], on='SETTLEMENTDATE')
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/reshape/merge.py", line 61, in merge
    validate=validate)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/reshape/merge.py", line 551, in __init__
    self.join_names) = self._get_merge_keys()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/reshape/merge.py", line 857, in _get_merge_keys
    rk, stacklevel=stacklevel))
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/core/generic.py", line 1382, in _get_label_or_level_values
    raise KeyError(key)
KeyError: 'SETTLEMENTDATE'

知道出了什么问题吗?谢谢

编辑1:

【问题讨论】:

    标签: python pandas csv numpy


    【解决方案1】:

    试试:

    result = pd.merge(data1[['REGION', 'TOTALDEMAND', 'RRP','SETTLEMENTDATE']], data2[['REGION', 'TOTALDEMAND', 'RRP','SETTLEMENTDATE']], on='SETTLEMENTDATE')
    

    您正在合并 SETTLEMENTDATE,但未在您要合并的数据框切片中采用相同的内容。

    【讨论】:

      【解决方案2】:

      您希望在 'SETTLEMENTDATE' 上合并,但该系列已从您的输入数据帧中排除。因此 Pandas 提出了KeyError。试试吧:

      result = pd.merge(data1[['REGION', 'TOTALDEMAND', 'RRP', 'SETTLEMENTDATE']],
                        data2[['REGION', 'TOTALDEMAND', 'RRP', 'SETTLEMENTDATE']],
                        on='SETTLEMENTDATE')
      

      【讨论】:

      • 有道理,谢谢!
      • 一个后续问题,有没有办法解决我所有数据的左侧,目前它在中心。我已经编辑了我的原始帖子来说明这一点
      猜你喜欢
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      • 2014-10-02
      • 1970-01-01
      • 2017-06-27
      相关资源
      最近更新 更多