Как использовать регулярное выражение в pandas dataframe с разными записями в столбце? - PullRequest
0 голосов
/ 17 апреля 2019

Я застрял с небольшой проблемой с Python и регулярными выражениями.Я получил таблицу панд с записями с другим порядком построения, см. Ниже.

+----------------------------------------------+
|                    Total                     |
+----------------------------------------------+
| Total Price: 4 x 2 = 8                       |
| Total Price 200 Price_per_piece 10 Amount 20 |
+----------------------------------------------+

Я хочу разделить записи в столбце «Всего» на 3 других столбца, как показано ниже.Нужно ли мне сначала разбивать эти столбцы на 2 подмножества и делать разные регулярные выражения, или у вас, ребята, есть какие-то другие решения / идеи?

+-------+-----------------+--------+
| Total | Price_per_piece | Amount |
+-------+-----------------+--------+
|     8 |               4 |      2 |
|   200 |              10 |     20 |
+-------+-----------------+--------+

1 Ответ

1 голос
/ 17 апреля 2019

Попробуйте это:

dtotal = ({"Total":["Total Price: 4 x 2 = 8","Total Price 200 Price_per_piece 10 Amount 20"]})
dt = pd.DataFrame(dtotal)

data = []
for item in dt['Total']:
    regex = re.findall(r"(\d+)\D+(\d+)\D+(\d+)",item)
    regex = (map(list,regex))
    data.append(list(map(int,list(regex)[0])))
dftotal = pd.DataFrame(data, columns=['Total','Price_per_piece','Amount'])
print(dftotal)

Выход:

   Total  Price_per_piece  Amount
0      4                2       8
1    200               10      20
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...