我在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 |
+-------+-----------------+--------+
答案 0 :(得分: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