簡體   English   中英

熊貓使用列標題作為值將多個列旋轉/合並為單個列

[英]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

采用:


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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM