【问题标题】:pandas -Merging on date columns is not workingpandas - 合并日期列不起作用
【发布时间】:2020-08-18 00:21:01
【问题描述】:

你好 stackoverflow 社区。我在尝试在共享相同日期列的两个数据框之间进行简单合并时遇到问题。抱歉,我是 python 新手,也许我表达自己的方式不是很清楚。我正在从事与股票价格计算相关的项目。第一个数据框有日期和收盘价列,而第二个数据框只有类似的日期列。我的目标是获得一个日期列,其旁边将有匹配的收盘价列。

这是我为合并两个数据框所做的工作 inner_join = pd.merge(df.iloc[7:79],df1[['Ex-Date','FDX UN Equity']],on ='Ex-date',how ='inner')

inner_join

Ex-date 指的是日期栏,FXD UN Equity 指的是收盘价栏

我得到了这个结果:

) = self._get_merge_keys() 
# validate the merge keys dtypes. We may need to coerce
# Check for duplicates
# work-around for merge_asof(right_index=True)
KeyError: 'Ex-date'```


Pandas 读取日期列的格式不同,所以我为原始 excel 文件中的日期列设置了相同的格式,但没有帮助。我尝试了各种合并,但也没有用。 有人知道发生了什么吗?

【问题讨论】:

  • 你能显示 df.head()。光看这个就很难判断是怎么回事
  • 按标签选择列区分大小写。您选择df1[['Ex-Date',...]],然后尝试在'Ex-date' 上合并,注意日期中D 的大小写不同

标签: python pandas date merge


【解决方案1】:

代码如下所示

    import pandas as pd
    inner_join = pd.merge_asof(df, df1, on = 'Ex-date')

【讨论】:

    【解决方案2】:

    将两个列标题名称更改为相同的小写并再次合并.. 检查 Ex-Date.. 合并之前列名称标题应相同并使用 how='left'

    【讨论】:

      猜你喜欢
      • 2017-12-29
      • 2022-01-19
      • 2017-09-15
      • 2017-01-27
      • 2019-09-30
      • 2016-11-15
      • 2017-05-16
      • 2022-11-30
      相关资源
      最近更新 更多