python - 如何在 pandas 中混合多个数据帧得到 ValueError

标签 python pandas merge

在使用 Anaconda3 Spyder 的 Pandas 中,我正在运行以下数据帧合并练习:

我有两个数据框,其结构如下:

aur.columns
['Date','No','Clos'] 


bal.columns
['Date','No','Clos']

两者都是 Pandas DataFrame

我需要将它们合并到另一个具有相同结构的数据框中:

merg.columns
['Date','No','Clos']

它们之间的共同列是“日期”,因此合并应该发生在该列中:

aur
Date         No       Clos
11/12/2017   21       314
2/1/2016     12       766

bal
Date         No       Clos
1/1/15       4        3432
2/3/12       33       3123

数据中需要注意的关键一点是,“日期”列中可能存在一些日期,这些日期可能存在于 bal 中,但不存在于 aur 中,反之亦然。 因此,在合并 pandas 数据帧时,您还必须处理它们中丢失的键。合并时 NaN 应替换为 0。

当我使用以下代码时,会出现 ValueError:

result = pd.merge(aur.Close, bal.Close, on='Date')

ValueError: can not merge DataFrame with instance of type <cla    ss 
'pandas.core.series.Series'>

因此合并没有发生并给出上述错误。

非常感谢您的回答。祝最好的人获胜!!

最佳答案

我认为你需要合并DataFrames有 2 列 - CloseDate ,因此在 DataFrames 中都选择这些列然后merge :

还有 2 种日期时间格式: strings ,所以首先将它们转换为 datetimes同样type .

aur['Date'] = pd.to_datetime(aur['Date'])
bal['Date'] = pd.to_datetime(bal['Date'])

result = pd.merge(aur[['Close', 'Date']], bal[['Close', 'Date']], on='Date')

如果使用:

result = pd.merge(aur.Close, bal.Close, on='Date')

然后尝试与列 Close 合并( Series ) 并得到错误。

关于python - 如何在 pandas 中混合多个数据帧得到 ValueError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47427837/

相关文章:

Python 抓取 ASPX 页面并登录

python - 使用 xlrd 引擎在 xls 文件上调用 pands read_excel 时出现 AssertionError

python - 如何合并重叠的列

c# - 使用 linq 合并 2 个具有重复键的字典

python - 如何处理涉及多个特征的文本分类问题

python - pyproject.toml 文件有什么用?

python - 从 Pandas 数据框中获取特定行作为系列

python - 在重新加载时绘制破折号刷新全局数据

git - merge 提交没有更改 ID?

python - 运行 fish shell 时 'unknown locale: UTF-8' 导入 (Mac OS X) 错误 'pandas'