pandas фрейм данных: есть ли способ преобразовать столбцы в значения строк в pandas - PullRequest
2 голосов
/ 01 апреля 2020

У меня есть фрейм данных, который я хочу преобразовать в столбец в значения строки, если значения 'Y'

Equipment   Component   thin_c02  thin_h20  thin_co
A              A.1          N        N         Y
B              B.1          Y        N         N
C              C.1          N        Y         N

Я хочу превратить в

Equipment   Component    Reason_corrosion   
A              A.1        thin_co        
B              B.1        thin_co2       
C              C.1        thin_h20      

Вы, ребята? есть какие-нибудь идеи?

Я пробовал df.T, но не могу изменить его так, как хотел.

Ответы [ 2 ]

2 голосов
/ 01 апреля 2020

Предполагая, что ваш DataFrame называется df.

columns = ["thin_c02", "thin_h20", "thin_co"]
labels = df[columns].stack()
pd.concat([df, labels[labels=='Y'].reset_index(1)], 1)[['Equipment', 'Component', 'level_1']]
#  Equipment Component   level_1
#0         A       A.1   thin_co
#1         B       B.1  thin_c02
#2         C       C.1  thin_h20
2 голосов
/ 01 апреля 2020

Попробуйте:

df_fil = df.filter(like='thin')
df['Reason_corrosion'] = (df_fil == 'Y').dot(df_fil.columns)

Вывод:

  Equipment Component thin_c02 thin_h20 thin_co Reason_corrosion
0         A       A.1        N        N       Y          thin_co
1         B       B.1        Y        N       N         thin_c02
2         C       C.1        N        Y       N         thin_h20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...