0

約 600 列を行にピボットする方法を探しています。これらの列のうち 4 つだけを含むサンプルを次に示します (良い、悪い、OK、ひどい)。

DF:

RecordID   good   bad   ok  Horrible
  A          0      0    1     0 
  B          1      0    0     1

望ましい出力:

 RecordID     Column    Value
   A           Good       0
   A            Bad       0
   A            Ok        1
   A          Horrible    0
   B           Good       1
   B            Bad       0
   B            Ok        0
   B          Horrible    1
4

3 に答える 3

1

メルト機能を使用できます:

(df.melt(id_vars='RecordID', var_name='Column', value_name='Value')
   .sort_values('RecordID')
   .reset_index(drop=True)
)

出力:

    RecordID      Column    Value
0          A        good        0
1          A         bad        0
2          A          ok        1
3          A    Horrible        0
4          B        good        1
5          B         bad        0
6          B          ok        0
7          B    Horrible        1
于 2021-04-07T19:22:54.197 に答える