вернуть имя столбца из таблицы, в которой были найдены определенные значения в любой строке с помощью python и pandas - PullRequest
0 голосов
/ 08 марта 2019

В таблице разные значения.Однако в других столбцах есть другие значения из других строк (Первый = Заголовок / Имя столбца):

|---------------------|------------------|------------------|
|          A          |     B            |     C            |
|---------------------|------------------|------------------|
|          100        |     200          |     300          |
|---------------------|------------------|------------------|
|          400        |     100          |     500          |
|---------------------|------------------|------------------|
|          600        |     700          |     800          |
|---------------------|------------------|------------------|

Для печати всех строк с определенным значением, например 100, я использую следующий код Python:

import pandas as pd

df = pd.read_excel('test.xlsx', sheet_name='test1')

dfObject = df[df.isin([100]).any(axis=1)]

print(dfObject)

повторное использование в выводе, подобном следующему:

|---------------------|------------------|------------------|
|          A          |     B            |     C            |
|---------------------|------------------|------------------|
|          100        |     200          |     300          |
|---------------------|------------------|------------------|
|          400        |     100          |     500          |
|---------------------|------------------|------------------|

Есть ли способ напечатать только имена столбцов, в которых указано конкретное значение (также с различными значениями):

|---------------------|
|          A          |
|---------------------|
|          B          |
|---------------------|

Ответы [ 2 ]

3 голосов
/ 08 марта 2019

IIUC, используйте:

df.columns[df.eq(100).any()]

#Index(['A', 'B'], dtype='object')

Чтобы получить вывод в виде серии, позвоните pd.Series(): pd.Series(df.columns[df.eq(100).any()])

1 голос
/ 08 марта 2019

Да, просто используйте атрибут columns следующим образом:

df[df.isin([100]).any(axis=1)].columns

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...