У меня есть рамка данных pandas, в которой мне нужно удалить определенные строки, которые не соответствуют шаблону регулярного выражения в данном столбце. Столбец, который мне нужен для запуска регулярного выражения, отформатирован: lastname,firstname
, и я хочу удалить все строки в этом столбце, которые не соответствуют этому формату. Я пытаюсь использовать метод фильтрации панд, и я попытался использовать команду таким образом:
edited_df = idf['Name'].filter(regex="([aA-zZ]*)([,]{1})([aA-zZ]*)")
и
edited_df = idf['Name'].filter(regex="/([aA-zZ]*)([,]{1})([aA-zZ]*)/")
.
Однако, делая что производит эту ошибку:
TypeError: can't use a string pattern on a bytes-like object
Результат type(idf['Name'])
представляет собой серию, и каждая запись в нем есть строка, в type(idf['CIO'][1])
.
Я видел этот вопрос Pandas filter rows, но я хочу сделать свою программу более модульной и не нужно настраивать список имен каждый раз, когда добавляется имя.
Я проверил свое регулярное выражение на http://pythex.org/ с тестовыми строками, и оно соответствовало ожиданию, поэтому я предполагаю, что неправильно использую метод фильтра. Любая помощь приветствуется.
Кроме того, менее важным вопросом является возможность доступа к группам захвата, созданным из регулярного выражения в модифицированном фреймворке данных.Фильтр Pandas не работает должным образом
1
A
ответ
2
Благодаря комментариям EdChum, вот как решить эту проблему:
Во-первых, падение NaN
значения с помощью:
idf.dropna(subset=['Name'], inplace=True)
Затем, используя str.contains вместо фильтра:
edited_df = idf[idf['Name'].str.contains(r"([aA-zZ]*)([,]{1})([aA-zZ]*)")]
Смежные вопросы
- 1. Фильтр не работает должным образом
- 2. фильтр не работает должным образом
- 3. Pandas EWMA не работает должным образом
- 4. Фильтр JQuery не работает должным образом
- 5. Фильтр не работает должным образом JSF
- 6. Фильтр даты не работает должным образом MVC
- 7. Фильтр AutoCompleteTextView не работает должным образом
- 8. WordPress template_include фильтр не работает должным образом
- 9. AngularJS фильтр не работает должным образом
- 10. Фильтр CUDA Median не работает должным образом
- 11. Фильтр Ajax не работает должным образом
- 12. loop_shop_columns фильтр не работает должным образом (WooCommerce)
- 13. Фильтр по списку не работает должным образом
- 14. Фильтр адаптера поиска не работает должным образом
- 15. PivotFilters.Add не работает должным образом
- 16. NoCache не работает должным образом
- 17. : не работает должным образом
- 18. не работает должным образом
- 19. не работает должным образом
- 20. не работает должным образом
- 21. ko.utils.arrayFilter не работает должным образом
- 22. Гистограмма не работает должным образом на объекте pandas groupby
- 23. Pandas Тип категориальных данных не работает должным образом
- 24. Pandas dropna не работает должным образом на MultiIndex
- 25. Фильтр числа углов не работает должным образом с сеткой ui
- 26. Фильтр AngularJS $ для вложенных полей не работает должным образом
- 27. Фильтр поиска MonoTouch.Dialog не работает должным образом для ячеек MessageElement
- 28. уникальный фильтр не работает должным образом в Angular.js
- 29. treshould фильтр в Aforge, похоже, не работает должным образом
- 30. Angular.js linq.js Где фильтр не работает должным образом
Можете ли вы попробуйте 'idf [idf ['Name']. str.contains (r" ([aA-zZ] *) ([,] {1}) ([aA-zZ] *) ")]' – EdChum
@EdChum Я получаю эта ошибка, значение ValueError: не может индексировать вектор, содержащий значения NA/NaN, даже после использования fillna ('idf ['Name']. fillna (значение = 0, inplace = True)'). –
Попробуйте сначала сбросить значения «NaN», поэтому 'idf ['Name']. Dropna()' – EdChum