pandas - 合并日期列不起作用

Posted

技术标签:

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

你好 *** 社区。我在尝试在共享相同日期列的两个数据框之间进行简单合并时遇到问题。抱歉,我是 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 的大小写不同 【参考方案1】:

代码如下所示

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

【讨论】:

【参考方案2】:

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

【讨论】:

以上是关于pandas - 合并日期列不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Python Pandas 合并不起作用

pandas - 合并字符串列不起作用(错误?)

python pandas 从日期时间中提取年份:df['year'] = df['date'].year 不起作用

使用 laravel 急切加载选择特定列不起作用

Python枢纽:扩展列不起作用

引导行和列不起作用