#python #pandas
#python #pandas
Вопрос:
Работа с большим китайским фреймом данных, содержащим около 2 миллионов записей. Построил распределение по полу, но получил две неожиданные строки с поврежденными символами. Предполагалось, что данные повреждены, поэтому я хотел отфильтровать записи с этими двумя неожиданными значениями. Итак, я написал,
db['Gender'] = db['Gender'].astype("category")
expected_list = ["Male","Female"]
unexpected = ~(db["Gender"].isin(expected_list))
exception = db[unexpected]
print(exception)
Однако новое «исключение» фрейма данных полностью нефильтровано и содержит все записи из оригинала. Не знаю, что пошло не так.
Комментарии:
1. Для меня все работает хорошо, какая у вас версия pandas?
2. также покажите первые 5 строк вашего df, если сможете
3. Это не воспроизводимый пример (MCVE). Пожалуйста, опубликуйте воспроизводимый пример. Сократите его до абсолютного минимума строк, необходимых для воспроизведения. Основываясь на том, что вы сказали, я бы посмотрел на поврежденный текст, кодировку Unicode и т.д.
Ответ №1:
Решаемая самостоятельно: символ скрытого пробела добавлен во время перевода кодировки с китайского на английский. С этого момента всегда будет пытаться сначала удалить stripe(). Спасибо за подсказки.