Использование:
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')