Извлечение информации из столбца данных pandas - PullRequest
0 голосов
/ 19 февраля 2020

Обновление

У меня есть приведенный ниже кадр данных, и я хочу извлечь некоторую информацию из столбца А, а затем добавить ее в другие столбцы в соответствии с их типами. Ниже приведен пример, иллюстрирующий это.

In [0]: df
Out[0]: 
          A                  
0 1258GA 25/01/20 TABLE 090626  038272
1 GOODIES 762088 A714816
2 TABLE AA88547 734963 GOODIES
3 WATER 02/450 FROM TOMORROW 48246
4 02H12 ALSCA 00548246B GOODIES

И я хочу получить результат ниже.

In [1]: df
Out[1]: 
          A                               Category             Date      Hour
0 1258GA 25/01/20 TABLE 090626  038272    TABLE           25/01/20
1 GOODIES 762088 A714816                  GOODIES 
2 TABLE AA88547 734963 GOODIES            TABLE GOODIES
3 WATER 02/450 FROM TOMORROW 48246        WATER 
4 02H12 ALSCA 00548246B GOODIES           GOODIES                        02H12

Я пробовал много вещей, но не получил этого результата

Ответы [ 2 ]

1 голос
/ 19 февраля 2020

Может быть, это поможет:

df['A'].str.findall(r'\b[A-Z]+\b').str.join(' ')

0                  TABLE
1                GOODIES
2          TABLE GOODIES
3    WATER FROM TOMORROW
4          ALSCA GOODIES
0 голосов
/ 19 февраля 2020

Вы, безусловно, можете сделать это, используя Series.str методы,

Series.str.extract() возвращает:

Извлечение групп захвата в регулярном выражении в виде столбцов в DataFrame.

Для каждой строки темы в Серии извлекайте группы из первого совпадения регулярного выражения pat.


Функция Series.str.findall () возвращает:

Найти все вхождения шаблона или регулярного выражения в Серии / Указателе.

Вот фрагмент кода,

РЕДАКТИРОВАТЬ:

df["Category"] = df['A'].str.findall(r"(\b[A-Za-z]+\b)").str.join(' ')
df["Date"] = df['A'].str.extract(r"(\b[0-9]+/[0-9]+/[0-9]+\b)")
df["Hour"] = df['A'].str.extract(r"(\b[0-9]+H[0-9]+\b)")

И вывод будет,

                                      A             Category      Date   Hour
0  1258GA 25/01/20 TABLE 090626  038272                TABLE  25/01/20    NaN
1                GOODIES 762088 A714816              GOODIES       NaN    NaN
2          TABLE AA88547 734963 GOODIES        TABLE GOODIES       NaN    NaN
3      WATER 02/450 FROM TOMORROW 48246  WATER FROM TOMORROW       NaN    NaN
4         02H12 ALSCA 00548246B GOODIES        ALSCA GOODIES       NaN  02H12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...