【发布时间】:2021-10-20 03:48:48
【问题描述】:
你能帮我一下吗?
我有一个数据帧 split() [我相信它是一个数据帧,其中每一行都是一个列表?] 的结果如下:
0 [001, 2491010000, Blah, 99, Blah, Blah, 2,57]
1 [01.01.20, 0048000002, 21.02.20, #176627, #176627, 001, 2491010000, Blah, 89, Blah, 70.418,60]
2 [01.01.20, Blah, 21.02.20, #176627, 001, 2491010000, Blah, 89, Blah, 3.258,67]
我想迭代上面的内容并创建一个像这样的新数据框:
Code Code1 Price
2491010000 99 2,57
2491010000 89 70.418,60
2491010000 89 3.258,67
我用的是sn-p:
t = journal.str.extract(r'00\d\D{2}(\d{10})\D+(\d{2})\D+(\d+[,.]\d+[,.]\d+)',)
t
但 t 返回为空。我在the regex simulator 中测试了正则表达式,似乎工作正常,所以我怀疑问题出在输入'journal' 上。
你能告诉我正确的方法吗?谢谢!
【问题讨论】:
-
试试
df[['Code', 'Code1', 'Price']] = df['journal'].str.extract(r'00\d\D*(\d{10})\D*(\d{2})\D*(\d+(?:[,.]\d+)+)', expand=True) -
我认为问题仍然存在,因为 journal 是在连接两个拆分后创建的 dtype('O')。不过我会保留更复杂的正则表达式!
标签: python regex pandas extract