Python:将列标题转换为单列值

2024-06-16 10:46:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,看起来像

  Fever   Chill   Cough   Headache  Respiratory   Nasal   Joint Pain    Back pain   Stomach pain        
0   Y       Y        Y     NaN           NaN         NaN    NaN          NaN        NaN 
1   Y       NaN      NaN    NaN          Y           NaN    NaN          NaN        NaN 
2   Y       NaN       Y     NaN          NaN         NaN    NaN          NaN        NaN 
3   Y       NaN      NaN    NaN          NaN         NaN    Y            NaN        NaN 
4   Y       NaN      NaN    NaN          NaN         NaN    NaN          NaN        NaN 

我想将columns header转换为单列(比如说症状),以便新列在其值为Y时包含列标题名称。所需列应如下所示:

      Symptom
0     Fever, Chill, Cough
1     Fever, Respiratory
2     Fever, Cough
3     Fever, Joint Pain
4     Fever

我使用了堆栈的概念,但它没有产生所需的输出。这是我的密码:

df[['Fever','Chill','Cough','Headache','Respiratory symptom','Nasal Symptoms','Joint Pain','Back pain','Stomach pain','Diarrhoea','Vomiting','Fatigue','Pneumonia shadow']].stack().reset_index()

有人能指导我如何得到想要的结果吗


Tags: columns数据backnanfeverheaderpainstomach