Извлечение значимой информации из текстового столбца с использованием Python - PullRequest
0 голосов
/ 23 мая 2018

У меня есть таблица с двумя столбцами.Я должен извлечь из него значимую информацию из колонки «Примечания».т.е. мне нужно извлечь дату в одном столбце и информацию после даты в одном столбце, а затем ID

Notes, ID
Movie Date 05-28-2018 Passed, 1010
MTD loan slip dated 8-10-14 the Issued, 1111
Max over date 10-2-15 and repaired, 11232

output-

Notes                               ID      Date        Status
Movie Date 05-28-2018 Passed        1010    5/28/2018   Passed
loan slip dated 8-10-14 Issued      1111    8/10/2014   Issued
Max over date 10-2-15 and repaired  11232   10/2/2015   repaired

Вот мой код-

df = pd.read_sql('select * from <table>', engine)
searchfor = [' dated', ' date', ' Date', ' Dated']
df2 = df[df['Notes'] .str.contains('|'.join(searchfor), na = False)]
..................

Благодарим вас за помощь.Спасибо.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Regex после получения строк из iterrows () также может извлекать информацию, если существует много возможностей

  s = 'Movie Date 05-28-2018 Passed'
  p = re.search(r'Dated?\s(\d+-\d+-\d+)\s([a-zA-Z]+)',s)

p.group (1) будет иметь значение даты, а p.group (2)будет иметь значение «Пройдено».Надеюсь, это поможет ..

0 голосов
/ 23 мая 2018

Для этого я бы сделал несколько петель.


Пример :

import pandas as pd

df = pd.read_csv("data.csv")

searchforstatus = [' Passed', ' Issued', ' repaired']

for idx, row in df.iterrows():
    for c in searchforstatus:
        if c in row['Notes']:
            df.loc[idx, 'Status'] = c

Результат

                                    Notes     ID     Status
0            Movie Date 05-28-2018 Passed   1010     Passed
1  MTD loan slip dated 8-10-14 the Issued   1111     Issued
2      Max over date 10-2-15 and repaired  11232   repaired

Данные, которые я использовал, можно найти здесь: https://files.fm/u/npaceyd6#_

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