Python pandas: отфильтровать строки с несколькими условиями

Мне нужно исправить файл CSV. Когда я читаю его через pandas, он показывает мне только один столбец, но их несколько.

Итак, я разделил столбец:

df = df['test_column'].str.split(' ', expand = True)

и получил 168 рядов.

Я изменил название столбцов: df.set_axis(list(range(1, 169)), axis = 1, inplace = True)

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

a = 122 #just a column name
df = df[df[a].notnull()]
print(df[a].to_string())

Проблема в том, что даже конкретная строка пуста, она все равно показывает мне. Я предполагаю, что есть только пробелы ("").

Так как же сделать несколько условий?

Можете ли вы предоставить некоторые образцы данных для тестирования?

ArchAngelPwn 09.05.2022 14:34

предоставить образцы данных для нас, чтобы понять проблему.

Humi 09.05.2022 14:47

Я хотел бы сделать, но я не уверен, как я могу это сделать...

Yokanishaa 09.05.2022 15:38
1
3
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

IIUC сначала заменяет все пустые строки или пробелы на отсутствующие значения:

#removed ' ', by default plitting by arbitrary space
df = df['test_column'].str.split(expand = True)
#starting columns by 1
df.columns += 1

df = df.replace(r'^\s*$', np.nan, regex=True)

a = 122 #just a column name
df = df[df[a].isna()]
print (df)

Это работает намного лучше. Большое спасибо. Есть ли способ отфильтровать два условия? пустой и "-" столбец

Yokanishaa 09.05.2022 16:00

Окей, я понял. Он работает с: df = df[(df[a].notnull()) & (df[a] != "-")]

Yokanishaa 09.05.2022 16:09

Другие вопросы по теме