Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在ValueError中混合多个数据帧_Python_Pandas_Merge - Fatal编程技术网

Python 如何在ValueError中混合多个数据帧

Python 如何在ValueError中混合多个数据帧,python,pandas,merge,Python,Pandas,Merge,在使用Anaconda3 Spyder的熊猫中,我正在运行以下数据帧合并练习: 我有两个数据帧,结构如下: aur.columns ['Date','No','Clos'] bal.columns ['Date','No','Clos'] 两者都是数据帧 我需要将它们合并到另一个具有相同结构的数据帧中: merg.columns ['Date','No','Clos'] 它们之间的公共列是“日期”,因此合并应在此列中进行: aur Date No Clos

在使用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'>
result=pd.merge(aur.Close,bal.Close,on='Date')
ValueError:无法将DataFrame与类型的实例合并
因此合并没有发生,并给出了上述错误


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

我认为您需要将
数据帧
合并为两列-
关闭
日期
,因此在
数据帧
中选择这两列,然后
合并

还有两种格式的日期时间为
字符串
,因此,对于相同的
类型
,首先将它们转换为
日期时间

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
)并得到错误。

让我试试,结果会很快发布是的,它有效这是正确的答案。非常感谢你的帮助。我本想提醒@PuneetMathur接受答案,但我发现他之前已经接受了答案。。。所以他知道自己在做什么(-:@piRSquared-谢谢你。@jezrael系统不允许你现在接受答案,要等15分钟才能接受。