大卫行为中的大熊猫不一致

时间:2017-11-09 05:54:35

标签: python pandas valueerror

以下作品:

df1 = pd.DataFrame([[1, 2, 3]], columns=['a', 'b', 'c'])
df2 = pd.DataFrame(columns=['a', 'b', 'c'])
pd.concat([df1, df2])

当然应该。但是,以下内容应该完全相同,但它不起作用:

od3 = OrderedDict([('a', [1]), ('b', [2]), ('c', [3])])
od4 = OrderedDict([('a', []), ('b', []), ('c', [])])
df3 = pd.DataFrame(od3)
df4 = pd.DataFrame(od4)
pd.concat([df3, df4])

这段代码产生

ValueError: Shape of passed values is (3, 1), indices imply (3, 0)

奇怪的是,这些的工作:

pd.concat([df3.drop_duplicates(), df4.drop_duplicates()])
pd.concat([df3, df4.drop_duplicates()])
pd.concat([df3.drop_duplicates(), df4])

虽然这会导致数据框中的float64代替int64 s。

那是怎么回事?似乎Pandas存储df3df1不同,即使它们看起来相同,.drop_duplicates()方法将df3转换为规范形式。(?)有什么想法吗?

0 个答案:

没有答案