[英]Merge multiple columns in pandas but move old column headers to align with the data
[英]Pandas pivot/merge multiple columns into single, using column headers as values
我正在使用列標題作為新列的值,將三列合並到數據框內的單個列中。 所有三列的唯一值均為“ 1”,其他兩列均具有NaN。
本來我想使用數據透視,但是我懷疑合並操作會更容易嗎? 我只是不確定如何去做。
即我需要轉身
index A B C time id
0 1 NaN NaN 4.42 1
1 1 NaN NaN 4.48 3
2 1 NaN NaN 5.45 2
3 NaN 1 NaN 6.64 2
4 NaN 1 NaN 7.49 1
5 NaN 1 NaN 7.72 3
6 NaN NaN 1 8.13 1
7 NaN NaN 1 8.65 2
8 NaN NaN 1 9.07 3
成...
index type time id
0 A 4.42 1
1 A 4.48 3
2 A 5.45 2
3 B 6.64 2
4 B 7.49 1
5 B 7.72 3
6 C 8.13 1
7 C 8.65 2
8 C 9.07 3
采用:
set_index
stack
重塑所有其他列-刪除NaNs
行 reorder_levels
用於更改列的最終順序 reset_index
來自MultiIndex
列 drop
rename
第一列 df = (df.set_index(['time','id'])
.stack()
.reorder_levels([2,0,1])
.reset_index(name='a')
.drop('a', 1)
.rename(columns={'level_0':'type'}))
print (df)
type time id
0 A 4.42 1
1 A 4.48 3
2 A 5.45 2
3 B 6.64 2
4 B 7.49 1
5 B 7.72 3
6 C 8.13 1
7 C 8.65 2
8 C 9.07 3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.