#python #regex #dataframe
#питон #регулярное выражение #фрейм данных
Вопрос:
Я застрял с небольшой проблемой с python и регулярными выражениями. У меня есть таблица pandas с записями с другим порядком построения, см. Ниже.
----------------------------------------------
| 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. Вы можете использовать что-то вроде этого
re.compile("(d )D (d )D (d )")
Ответ №1:
Попробуйте это:
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