Проверка элементов в кадре данных и извлечение некоторых значений - PullRequest
1 голос
/ 29 мая 2020

Мне нужно проверить, содержат ли значения в столбце то или иное слово (например, яблоко / арбуз) и создать новый столбец (Fruit), в котором будут собраны значения из Sentence.

Например:

Sentence                      Fruit
I bought 1 watermelon        watermelon
I bought 2 apples            apples       
I bought 1 apple             apple

Я пробовал следующее

schema = '^(?P<Fruit>\d+ apple?| watermelon?)' but it is not working. If I wrote

schema_n = '^(?P<Fruit>\d+ apple?)

или

schema_n = '^(?P<Fruit>\d+ watermelon?)

это работает. Таким образом, мой вопрос заключается в том, как я могу использовать обозначение оператора для проверки значения (четвертого элемента в строке или условия).

Большое спасибо

1 Ответ

1 голос
/ 29 мая 2020

После обсуждения не совсем понятно, какое logi c управляет сопоставлением фруктов, но если вы пытаетесь извлечь какие-либо "apple", "apples" или "watermelon" из предложений, в которых фрукту предшествует di git и пробел, вы можете использовать:

>>> def replacer(s):
...     return re.search(r"(?<=\d )(apples?|watermelon)\b", s).group()
...
>>> df = pd.DataFrame({"Sentence": ["I bought 1 watermelon", "I bought 2 apples", "I bought 1 apple"]})
>>> df["Fruit"] = df["Sentence"].apply(replacer)
>>> df
                Sentence       Fruit
0  I bought 1 watermelon  watermelon
1      I bought 2 apples      apples
2       I bought 1 apple       apple

Если в ваших данных есть строки, не соответствующие шаблону, это будет sh. Вам нужно будет проверить эти случаи и ввести какое-то значение по умолчанию, например:

>>> def replacer(s):
...     match = re.search(r"(?<=\d )(apples?|watermelon)\b", s)
...     return match.group() if match else None
...
>>> df = pd.DataFrame({"Sentence": ["foo 1 watermelons"]})
>>> df["Fruit"] = df["Sentence"].apply(replacer)
>>> df
            Sentence Fruit
0  foo 1 watermelons  None

Если ваши данные сложнее, чем то, что вы показали, вам нужно будет адаптировать их, чтобы они соответствовали вашим фактическим данным. вариант использования.

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