连接 DataFrame 和 Series 时,系列插入 "vertical"

When concatenating DataFrame and Series, the series is inserted in "vertical"

我正在使用 DataFrame.iterrows():

遍历 DataFrame
for index, row_to_append in source_dataframe.iterrows():

然后我想将一些行添加到其他一些 DataFrame 中。对于我正在使用的附加:

pd.concat([destination_dataframe, row_to_append], axis=0, join='outer', ignore_index=True)

但是串联的方式不对,事实上 destination_dataframe 为:

   0         1         2         3  ...         5         6         7          class
0  0.470588  0.896774  0.408163  0.239130  ...  0.104294  0.253629  0.183333    yes
1  0.000000  0.600000  0.163265  0.304348  ...  0.509202  0.943638  0.200000    yes
2  0.176471  0.219355  0.265306  0.271739  ...  0.261759  0.072588  0.083333    yes
3  0.117647  0.987097  0.469388  0.413043  ...  0.251534  0.034159  0.533333    yes
4  0.058824  0.264516  0.428571  0.239130  ...  0.171779  0.116567  0.166667     no
5  0.058824  0.290323  0.428571  0.173913  ...  0.202454  0.038002  0.000000     no
6  0.294118  0.464516  0.510204  0.239130  ...  0.151329  0.052519  0.150000     no

row_to_add:

(0, 0.411765) (1, 0.36129) (2, 0.489796) (3, 0.23913) (4, 0.169471) (5, 0.241309) (6, 0.173356) (7, 0.183333) ('class', 'yes')

串联的输出是:

       0         1         2  ...         6         7           class
0      0.470588  0.896774  0.408163  ...  0.253629  0.183333    yes
1           0.0  0.600000  0.163265  ...  0.943638  0.200000    yes
2      0.176471  0.219355  0.265306  ...  0.072588  0.083333    yes
3      0.117647  0.987097  0.469388  ...  0.034159  0.533333    yes
4      0.058824  0.264516  0.428571  ...  0.116567  0.166667     no
5      0.058824  0.290323  0.428571  ...  0.038002  0.000000     no
6      0.294118  0.464516  0.510204  ...  0.052519  0.150000     no
0      0.411765       NaN       NaN  ...       NaN       NaN    NaN
1       0.36129       NaN       NaN  ...       NaN       NaN    NaN
2      0.489796       NaN       NaN  ...       NaN       NaN    NaN
3       0.23913       NaN       NaN  ...       NaN       NaN    NaN
4      0.169471       NaN       NaN  ...       NaN       NaN    NaN
5      0.241309       NaN       NaN  ...       NaN       NaN    NaN
6      0.173356       NaN       NaN  ...       NaN       NaN    NaN
7      0.183333       NaN       NaN  ...       NaN       NaN    NaN
class       yes       NaN       NaN  ...       NaN       NaN    NaN

“垂直”而不是水平添加行的位置。

虽然我想要:

       0         1         2  ...         6         7           class
0      0.470588  0.896774  0.408163  ...  0.253629  0.183333    yes
1           0.0  0.600000  0.163265  ...  0.943638  0.200000    yes
2      0.176471  0.219355  0.265306  ...  0.072588  0.083333    yes
3      0.117647  0.987097  0.469388  ...  0.034159  0.533333    yes
4      0.058824  0.264516  0.428571  ...  0.116567  0.166667     no
5      0.058824  0.290323  0.428571  ...  0.038002  0.000000     no
6      0.294118  0.464516  0.510204  ...  0.052519  0.150000     no
7      0.411765  0.36129   0.489796  ...  0.173356  0.183333    yes <-------

我尝试更改 axisjoinignore_index 参数,但仍然没有得到结果。

您可以将 row_to_append 转换为数据帧

row_to_append  = pd.Series(row_to_append).to_frame().T

out = pd.concat([destination_dataframe, row_to_append], axis=0, join='outer', ignore_index=True)