【问题标题】:Python splitting column value with special delimeters使用特殊分隔符的 Python 拆分列值
【发布时间】:2020-07-23 02:31:08
【问题描述】:

我正在尝试拆分 pandas 列值而不丢失其熟食度表。这是我关注的stack-overflow。当我传递一个字符串时它运行良好,但是当我希望它被'/m'分割时它不起作用。我尝试了不同的正则表达式,但似乎也不起作用。有什么建议吗?

import pandas as pd 
ls = [
    {'ID': 'ABC',
     'LongString': '/m/04abc3 1 1 1 1 /m/04ccc32 3 3 3 3'},
    {'ID': 'CDE',
     'LongString': '/m/04abc4 2 2 2 2 /m/04ccc12 4 4 4 4'}
]

df = pd.DataFrame(ls)

df['LongString'] = df['LongString'].str.split('(?<=/m)\s') # tried removing `/` and put in `m` for testing. Did not do the trick. 

我试图让它看起来像这样。我在这里做错了什么?

pandas dataframe format: 
ID  | LongString
ABC | ['/m/04abc3 1 1 1 1', '/m/04ccc32 3 3 3 3']
CDE | ['/m/04abc4 2 2 2 2', '/m/04ccc12 4 4 4 4']

【问题讨论】:

    标签: python-3.x pandas split


    【解决方案1】:

    看起来好像您想在一个空白处拆分后跟/m。在正则表达式语言中,您需要前瞻而不是后瞻。

    建议的解决方案:

    df['LongString'] = df['LongString'].str.split('\s(?=/m)')
    

    【讨论】:

    • 谢谢。之前没想过加\s
    猜你喜欢
    • 2020-12-19
    • 1970-01-01
    • 2021-07-02
    • 2019-12-15
    • 1970-01-01
    • 2014-10-03
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    相关资源
    最近更新 更多