Python Pandas join()工作,但concat()失败
我想使用Pandas 0.14.1对具有相同行索引的两个数据帧执行外部联接Python Pandas join()工作,但concat()失败,python,pandas,Python,Pandas,我想使用Pandas 0.14.1对具有相同行索引的两个数据帧执行外部联接 df1的形状为456,1,df2的形状为139,5 df2中的大多数键都可以在df1中找到: 加入工作: concat失败: 什么原因可能导致此错误?如果其中一个索引具有重复的值,则可能会出现此错误。比如说, import pandas as pd df1 = pd.DataFrame(np.random.random((5,1)), index=list('AACDE'), co
df1的形状为456,1,df2的形状为139,5 df2中的大多数键都可以在df1中找到: 加入工作: concat失败:
什么原因可能导致此错误?如果其中一个索引具有重复的值,则可能会出现此错误。比如说,
import pandas as pd
df1 = pd.DataFrame(np.random.random((5,1)), index=list('AACDE'),
columns=['foo'])
df2 = pd.DataFrame(np.random.random((4,1)), index=list('CDEF'),
columns=['bar'])
然后
但是
df1的形状是456,1,df2的形状是139,5,你是说1456和5139?不是:456和139行。事实上,错误消息令人困惑,因为它报告了转置的形状。可能的原因:其中一个数据帧具有重复的索引值。发现从下游成功加入。这可能会导致concat失败,尽管抛出的错误并不明显。是的,确切地说:通过下游错误发现其中一个数据帧中的索引具有重复值。感谢您的回复。
[in] df3=df1.join(df2,how='outer')
[in] df3.shape
[out] 473,6
[in] df3=pd.concat([df1,df2],axis=1,join='outer')
[out] ValueError: Shape of passed values is (6, 473), indices imply (6, 472)
import pandas as pd
df1 = pd.DataFrame(np.random.random((5,1)), index=list('AACDE'),
columns=['foo'])
df2 = pd.DataFrame(np.random.random((4,1)), index=list('CDEF'),
columns=['bar'])
In [50]: df1.join(df2, how='outer')
Out[50]:
foo bar
A 0.846814 NaN
A 0.638571 NaN
C 0.516051 0.573165
D 0.789398 0.095466
E 0.921592 0.970619
F NaN 0.061434
In [51]: pd.concat([df1,df2], axis=1, join='outer')
ValueError: Shape of passed values is (2, 6), indices imply (2, 5)