在使用 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 列 - Close
和Date
,因此在 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/