我正在尝试根据 foll 连接数据帧。 2个csv文件:
df_a: https://www.dropbox.com/s/slcu7o7yyottujl/df_current.csv?dl=0
df_b: https://www.dropbox.com/s/laveuldraurdpu1/df_climatology.csv?dl=0
这两个具有相同的列数和名称。但是,当我这样做时:
pandas.concat([df_a, df_b])
我收到错误:
AssertionError: Number of manager items must equal union of block items
# manager items: 20, # tot_items: 21
如何解决这个问题?
原文由 user308827 发布,翻译遵循 CC BY-SA 4.0 许可协议
我认为如果满足以下两个条件,就会出现此错误:
(df1.columns == df2.columns)
是False
基本上,如果你
concat
带有列的数据帧[A,B,C]
和[B,C,D]
它可以为每个不同的列名称制作一个系列。因此,如果我尝试加入第三个数据[B,B,C]
它不知道要追加哪一列,最终得到的不同列比它认为需要的要少。如果您的数据帧是
df1.columns == df2.columns
那么它无论如何都会起作用。所以你可以加入[B,B,C]
到[B,B,C]
,但不能加入[C,B,B]
,就好像这些列的索引是相同的或者可能只是使用整数一样