Разделить столбец данных pandas с несогласованными данными - PullRequest
0 голосов
/ 07 сентября 2018

У меня есть столбец суффикс, который я хочу разделить на столбцы суффикс и буква Однако данные немного грязные:

'suffix'
 7
 D-25
 K110
 NO7
 NO-8

Результат, к которому я стремлюсь:

'suffix'   'character'
     7        Nan
     25       D
     110      K
     7        NO
     8        NO

Будет трудно сделать это с пандами Series.str.split? Я изучал регулярные выражения, но у меня нет опыта работы с ними, и я не смог найти пример, с которым я мог бы работать.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Я начал писать это до ответа @Brad Solomon. Он короче, но этот подход показывает некоторую встроенную обработку регулярных выражений в Pandas.

import pandas as pd
df = pd.DataFrame([
    "7",
    "D-25",
    "K110",
    "NO7",
    "NO-8"
], columns=["original",])
df["suffix"] = df["original"].str.extract("(\D+)").str.replace("-","")
df["character"] = df["original"].str.extract("(\d+)")

Это дает вам DataFrame, как это:

  original suffix character
0        7    NaN         7
1     D-25     D-        25
2     K110      K       110
3      NO7     NO         7
4     NO-8    NO-         8
0 голосов
/ 07 сентября 2018

Вы можете сделать это, передав Pandas регулярное выражение:

>>> import re
>>> import pandas as pd
>>> regex = re.compile(r'(?P<char>[A-Z]*)-*(?P<suf>\d+)')

>>> s = pd.Series(['7', 'D-25', 'K110', 'NO7', 'NO8'])

>>> s.str.extract(regex).replace('', 'NaN')
  char  suf
0  NaN    7
1    D   25
2    K  110
3   NO    7
4   NO    8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...