#python #pandas #dataframe
#python #pandas #фрейм данных
Вопрос:
В таблице разные значения. Однако в других столбцах из других строк есть одинаковые значения (First = Заголовок / имя столбца):
|---------------------|------------------|------------------|
| 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 |
|---------------------|------------------|------------------|
Есть ли какой-либо способ напечатать только имена столбцов, в которых указано конкретное значение, подобным этому (также с помощью distinct):
|---------------------|
| A |
|---------------------|
| B |
|---------------------|
Комментарии:
1. вы можете просто сохранить имена столбцов print (df.columns.values) в списке и распечатать.
2. Вам следует немного прояснить свой вопрос, посмотрите на различные ответы ниже.
3. @SzymonMaszke первый ответ — это именно то, что я искал, и anky_91 потребовалось всего несколько минут, чтобы понять суть. Исходя из этого, у меня другое мнение по поводу пересмотра ответа. И поскольку я довольно долго искал решение, я думаю, это могло бы помочь и другим. грустно видеть множество отрицательных голосов.
4. За исключением того, что он добавил,
IIUC
что означаетIf I understand correctly
. Это также не указывает на то, что он считает этот вопрос правильно поставленным. Рад, что вы получили решение, которое искали, хотя.
Ответ №1:
IIUC, используйте:
df.columns[df.eq(100).any()]
#Index(['A', 'B'], dtype='object')
Чтобы получить выходные данные в виде серии, вызовите pd.Series()
: pd.Series(df.columns[df.eq(100).any()])
Ответ №2:
Да, просто используйте columns
атрибут, подобный этому:
df[df.isin([100]).any(axis=1)].columns