。例如,
from df_input:

Course_01 Course_02 Course_03
  0           0         1
  1           0         0
  0           1         0

至DFU输出
   Course
0 03
1 01
2 02

我一直在研究Reconstruct a categorical variable from dummies in pandas提供的解决方案,但它没有起作用。请帮忙,谢谢。
非常感谢,
谨致问候,
卡罗

最佳答案

We can use wide_to_long, then select rows that are not equal to zero i.e

ndf = pd.wide_to_long(df, stubnames='T_', i='id',j='T')

      T_
id  T
id1 30   0
id2 30   1
id1 40   1
id2 40   0

not_dummy = ndf[ndf['T_'].ne(0)].reset_index().drop('T_',1)

   id   T
0  id2  30
1  id1  40

根据您的编辑进行更新:
ndf = pd.wide_to_long(df.reset_index(), stubnames='T_',i='index',j='T')

not_dummy = ndf[ndf['T_'].ne(0)].reset_index(level='T').drop('T_',1)

        T
index
1      30
0      40

10-04 21:45