Панды: отфильтрованный фрейм данных не возвращает никаких строк, но нефильтрованный - PullRequest
0 голосов
/ 10 июня 2018

Я создаю кадр данных Pandas из файла CSV:

import pandas as pd

filename = 'mike.csv'
main_df = pd.read_csv(filename)

Вывод print(main_df.shape) равен (280, 23), поэтому в этом кадре данных имеется 280 строк.

Однако, когдаЗатем я пытаюсь отфильтровать этот фрейм данных по значениям столбцов:

filtered_df = main_df.query('Status == "Active"')
print(filtered_df.shape)

, вывод od print(filtered_df.shape) равен (0,23), поэтому я не получаю никаких строк.

Нетошибка в имени столбца или имени значения, как показано ниже: print(main_df.loc[:5, "Status"]):

0    Active   
1    Draft    
2    Draft    
3    Draft    
4    Active   
5    Active   
Name: Status, dtype: object

Как это исправить?

1 Ответ

0 голосов
/ 11 июня 2018

Как обсуждалось в комментариях, потенциальной проблемой могут быть пробелы, которые не видны при печати ваших данных.Вы можете удалить их, используя .str.strip():

df['Status'] = df['Status'].str.strip()

Тогда

filtered_df = main_df.query('Status == "Active"')

должно дать желаемый результат.

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