Получить метку индекса столбца на основе значений - PullRequest
1 голос
/ 30 сентября 2019

У меня есть следующее:

          C1       C2     C3
0         0        0      1 
1         0        0      1
2         0        0      1

И я хотел бы получить соответствующее значение индекса столбца, которое имеет 1, поэтому результат должен быть "C3".

Я знаю, как это сделать, транспонируя фрейм данных и затем получая значения индекса, но это не идеально для данных в тех фреймах данных, которые у меня есть, и мне интересно, может ли быть более эффективное решение?

1 Ответ

1 голос
/ 30 сентября 2019

Я сохраню результат в list, поскольку в противном случае может быть несколько столбцов со значениями, равными 1. Вы можете использовать DataFrame.loc

если все значения столбца должны быть 1, тогда вы можете использовать :

df.loc[:,df.eq(1).all()].columns.tolist()

Выход:

['C3']

, если это неЕсли необходимо, используйте:

df.loc[:,df.eq(1).any()].columns.tolist()

или, как предложено @ piRSquared , вы можете выбрать прямо из df.columns:

[*df.columns[df.eq(1).all()]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...