我对Pandas相对较新。在使用pd.concat()
时,我遇到了一个意外问题,这是我没有预料到的。
df1 = pd.DataFrame([], columns=['a', 'b', 'c']).set_index(['b', 'a'])
df2 = pd.DataFrame([[1, 2, 3]], columns=['a', 'b', 'c']).set_index(['a', 'b']) # intentionally reverse
pd.concat([df1, df2])
我会期望以上操作的结果为:
c
a b
1 2 3
但实际上它是:
c
b a <---- note that b=1 and a=2 here
1 2 3
换句话说,似乎在进行
pd.concat()
时,其会忽略索引标头,但是在完成pd.concat()
后重新标记标头。另一方面,pd.concat()
在列标头上的工作方式符合我的预期。pd.concat([df1.reset_index(), df2.reset_index()])
的结果如下: a b c
0 1.0 2.0 3
正如预期。
我观察到的使用 pd.concat()
和索引的行为是否是预期的行为?
我尝试过在谷歌上搜索,但我还没有找到类似问题的例子。
谢谢!