найти имя столбца определенного элемента в кадре данных - PullRequest
2 голосов
/ 25 мая 2019

Предположим, у меня есть фрейм данных в python со следующей структурой и данными

'Column1' 'Column2'
 value1   value2
 value3   value4

Как найти имя столбца value4?

Я мог бы использовать data.iloc [0,0] или data.iloc [0: 1; 0: 1], чтобы получить 'value1', но как мне найти его метку 'Column1', не печатая полные значения столбца или не делая ручная проверка на совпадение с использованием цикла for.

Ответы [ 2 ]

0 голосов
/ 25 мая 2019

Использование:

c = df.columns[(df == 'value4').any()].tolist()
print (c)
['Column2']

Если необходимо сначала сопоставить значение, используйте iter с next - если не существует, возвращается значение по умолчанию:

c = next(iter(df.columns[(df == 'value4').any()].tolist()), 'no match')
print (c)
Column2

Подробнее :

Сначала проверьте все значения:

print ((df == 'value4'))
   Column1  Column2
0    False    False
1    False     True

А затем добавьте DataFrame.any для проверки как минимум одного True на столбцы:

print ((df == 'value4').any())
Column1    False
Column2     True
dtype: bool

Последние имена столбцов фильтра:

print (df.columns[(df == 'value4').any()])
Index(['Column2'], dtype='object')
0 голосов
/ 25 мая 2019

Вы можете искать значение в любом месте кадра данных и удалять столбцы, где его нет:

df[df == 'value4'].dropna(axis=1, how='all').columns.tolist()

Это вернет ['Column2'].

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