Pandas 行连接行为异常:同时连接 w.r.t 行和列

Pandas row concatenaton behaves unexpectedly: concatenates with w.r.t rows AND columns at the same time

我以前做过 100 多次都没有问题,但现在我觉得我脑子有问题。我有以下两个要行连接的数据框。我只想将 df2 添加到 df1 的底部。

df1: 
                  0         1         2  ...      4093      4094      4095
images0.jpg     0.0  0.000000  0.000000  ...  0.000000  0.000000  2.646948
images1.jpg     0.0  0.000000  0.000000  ...  0.000000  0.000000  2.341892
images2.jpg     0.0  0.000000  0.000000  ...  0.000000  2.771901  0.652107
images6.jpg     0.0  0.000000  0.000000  ...  0.000000  0.000000  1.415491
images7.jpg     0.0  0.000000  0.316132  ...  0.000000  0.000000  2.481199
            ...       ...       ...  ...       ...       ...       ...
images2901.jpg  0.0  0.000000  0.000000  ...  0.934915  0.000000  0.000000
images2902.jpg  0.0  0.000000  0.000000  ...  1.821516  0.000000  0.000000
images2903.jpg  0.0  0.594903  0.000000  ...  4.503857  1.291129  0.000000
images2904.jpg  0.0  0.000000  0.000000  ...  0.000000  2.801172  0.000000
images2905.jpg  0.0  0.000000  0.000000  ...  0.000000  6.153142  0.000000

[2903 rows x 4096 columns]
---------------------------------------------------------------------
df2: 
             0     1         2     3     ...      4092      4093  4094      4095
images3.jpg   0.0   0.0  0.000000   0.0  ...  0.000000  0.000000   0.0  2.298852
images4.jpg   0.0   0.0  0.000000   0.0  ...  0.593716  0.621494   0.0  0.386869
images5.jpg   0.0   0.0  1.153148   0.0  ...  0.048982  0.000000   0.0  2.601259

[3 rows x 4096 columns]

两个数据框只包含float64个元素。然后我就做 df1 = df1.append(df2)df1 = pd.concat([df1, df2], axis=0)。然而,这给了我以下内容:

df1: 
                  0    1         2    3  ...  996       997       998  999
images0.jpg     NaN  NaN       NaN  NaN  ...  0.0  3.252266  0.000000  0.0
images1.jpg     NaN  NaN       NaN  NaN  ...  0.0  3.010184  0.000000  0.0
images2.jpg     NaN  NaN       NaN  NaN  ...  0.0  2.849794  6.082187  0.0
images6.jpg     NaN  NaN       NaN  NaN  ...  0.0  1.281688  0.000000  0.0
images7.jpg     NaN  NaN       NaN  NaN  ...  0.0  1.096831  0.000000  0.0
            ...  ...       ...  ...  ...  ...       ...       ...  ...
images2904.jpg  NaN  NaN       NaN  NaN  ...  0.0  1.820635  2.063830  0.0
images2905.jpg  NaN  NaN       NaN  NaN  ...  0.0  3.845408  0.415828  0.0
images3.jpg     0.0  0.0  0.000000  0.0  ...  NaN       NaN       NaN  NaN
images4.jpg     0.0  0.0  0.000000  0.0  ...  NaN       NaN       NaN  NaN
images5.jpg     0.0  0.0  1.153148  0.0  ...  NaN       NaN       NaN  NaN

[2906 rows x 8192 columns]

它似乎连接了 w.r.t 行和列,但我只想按行连接。我错过了什么 silly/obvious 不是吗?

我认为问题是列名不一样,我想在一个 DataFrame 中是字符串,在另一个数据框中是整数。

所以需要相同的索引 - 这里是整数:

pd.concat([df1.rename(columns=int), df2.rename(columns=int)])