Как перебрать столбец df с условием «кусочек строки» .isnumeri c () - PullRequest
1 голос
/ 17 января 2020


В одной строке я хочу получить строки df, в которых один столбец начинается с числа трех ди git. Очевидно, что это можно сделать разными способами (например, нарезкой строк или с помощью для l oop). Я хотел сделать это, используя [pandas .Series.str.isnumeric] 1 . Удивительно, но я получил объект «AttributeError: list», не имеющий атрибута «isnumeri c».

Вот необходимая часть df:

>>> df.loc[df.title.str[0:3]=="123"].title
>>> 0       123Besiktas Modern Eşyalı 4+1 Kiralık Daire (129)
    90      123Besiktas Selenium Panorama Yeni Eşyalı 1+1 ...
    8542    123Besiktas Büyükhanlı Eşyalı Boğaz Manzaralı ...
Name: title, dtype: object

Вот код и ошибка:

>>> df.loc[[df.title.str[0:3]].isnumeric()]
>>> ---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-71-74a315c862f9> in <module>
----> 1 df.loc[[df.title.str[0:3]].isnumeric()]

AttributeError: 'list' object has no attribute 'isnumeric'

Документация гласит:
Series.str.isnumeri c (self) эквивалентно использованию строкового метода Python str.isnumeri c () для каждого элемента Серии /Индекс. Если строка содержит ноль символов, для этой проверки возвращается значение False.

Конечно, метод Python str.isnumeri c () позволяет нарезать:

>>>w = "123Besiktas"
...w[0:3].isnumeric()
>>>True

Но pandas .Series.str.isnumeri c () не разрешает нарезку!
На самом деле речь идет не только о .isnumeri c () но также все .isXXX () методы.

Итак, мой вопрос:
Это то, о чем Pandas разработчики должны позаботиться, или я что-то упустил ?

Заранее спасибо.

...