我正在学习Python,现在我想分割一个不带分隔符的字符串。 字符串位于数据框列 pandas 中,我想将字符串分为多个列。
最好的方法是什么?
数据:
“Naam:TEST B.V. Omschrijving:Factuur 20-01-2024,klantnummer 1234567890。IBAN:NL41INGB0000467598 Kenmerk:000011292292967 Machtiging ID:M10024815057 Incasant ID:NL39KPN27 1247010001 Doorlopende incasso Valutadatum: 24-01-2024"
期望输出:
纳姆 | Omschrijving | 国际银行账号 | 肯默克 | MachtigingID | IncassantID | 评估数据 |
---|---|---|---|---|---|---|
测试 B.V. | 生产日期 20-01-2024,klantnummer 1234567890 | NL41INGB0000467598 | 000011292292967 | M10024815057 | NL39KPN271247010001 | 2024年1月24日 |
使用正则表达式提取
:
之前的单词作为键(没有阴影,除非以 ID
结尾:
import re
data = "Naam: TEST B.V. Omschrijving: Factuur 20-01-2024, klantnummer 1234567890. IBAN: NL41INGB0000467598 Kenmerk: 000011292292967 Machtiging ID: M10024815057 Incassant ID: NL39KPN271247010001 Doorlopende incasso Valutadatum: 24-01-2024"
out = pd.DataFrame([dict(re.findall(r'(\S+(?: ID)?): ([^:]+?) *(?=$|\b[^:\s]+(?: ID)?:)', data))])
输出:
Naam Omschrijving IBAN Kenmerk Machtiging ID Incassant ID Valutadatum
0 TEST B.V. Factuur 20-01-2024, klantnummer 1234567890. NL41INGB0000467598 000011292292967 M10024815057 NL39KPN271247010001 Doorlopende incasso 24-01-2024