如何在ValueE中混合多个数据帧

2022-09-28 20:27:43 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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


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

两者都是数据帧

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

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中不存在,反之亦然。 因此,在合并两个数据帧时,还必须处理两个数据帧中缺少的关键点。合并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'>

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

非常感谢您的回答。愿最棒的人获胜


Tags: columns数据noclosedatemerge结构关键aurvalueerrorspyderbalanaconda3mergclos
1条回答
网友
1楼 ·

我认为您需要将DataFrames与两列CloseDate合并,因此在DataFramesmerge中选择这些列:

还有两种datetimes格式为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')

然后尝试与列CloseSeries)合并并获得错误

热门问题