我有一個 Pandas DataFrame 串列,每個 df 都有一個名為 columnsub_id和 column data_*。該列data_*特定于每個 df:第一個 has data_0,第二個 has data_1,等等。模式是這樣的:
[[`sub_id`,`data_0`], [`sub_id`,`data_1`], [`sub_id`,`data_2`],...[`sub_id`,`data_10`]]
在第一個 df 我有:
sub_id data_0
1 1232456
2 4567
5 98786
11 8643
. .
. .
在第二個 df 我有:
sub_id data_1
4 1265474
5 4567
20 23434
13 8675443
. .
. .
在第三個 df 我有:
sub_id data_2
11 1265474
1 4567
20 23434
5 8675443
. .
. .
我已經使用concat為所有資料創建了一個唯一的 df,但結果不是我想要的。
我想要的是這樣的 df:
sub_id data_0 data_1 data_2 ..
1 1232456 4567
2 4567
4 1265474
5 98786 4567 8675443
11 8643 1265474
13 8675443
20 23434 23434
. .
. .
我怎么能做到這一點?
uj5u.com熱心網友回復:
使用concat與創造DataFrame.set_index:
dfs = [df1, df2, df3]
df = pd.concat([x.set_index('sub_id') for x in dfs], axis=1)
print (df)
data_0 data_1 data_2
sub_id
1 1232456.0 NaN 4567.0
2 4567.0 NaN NaN
4 NaN 1265474.0 NaN
5 98786.0 4567.0 8675443.0
11 8643.0 NaN 1265474.0
13 NaN 8675443.0 NaN
20 NaN 23434.0 23434.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/392733.html
