连接 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 <-------
我尝试更改 axis
、join
和 ignore_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)
我正在使用 DataFrame.iterrows()
:
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 <-------
我尝试更改 axis
、join
和 ignore_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)