【问题标题】:Splitting an object dtype column in pandas在熊猫中拆分对象 dtype 列
【发布时间】:2021-04-19 10:31:57
【问题描述】:

我的 DF 看起来有多个分隔符 ( , = ) 以及 int 和 str 的组合。

DF 类型是对象(不转换为字符串)

一列单元格中的信息包含此信息

Network=115,MEID=115,Function=115,Area=1806

我想使用分隔符“=”拆分它以获取区域信息。有没有办法做到这一点

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    为了通用Area=xxxx可以在单元格中的任何位置,我们可以将str.extract()与regex(正则表达式)一起使用,如下所示:

    df['Area'] = df['Col1'].str.extract(r'Area=(?P<Area>[^,=]*)')
    

    试运行

    测试数据构建:

    data = {'Col1': ['Network=115,MEID=115,Function=115,Area=1806', 'Network=120,MEID=116,Area=1820,Function=116']}
    df = pd.DataFrame(data)
    
    print(df)
    
                                              Col1
    0  Network=115,MEID=115,Function=115,Area=1806
    1  Network=120,MEID=116,Area=1820,Function=116
    

    运行新代码

    df['Area'] = df['Col1'].str.extract(r'Area=(?P<Area>[^,=]*)')
    
    print(df)
    
    
                                              Col1  Area
    0  Network=115,MEID=115,Function=115,Area=1806  1806
    1  Network=120,MEID=116,Area=1820,Function=116  1820
    

    正则表达式解释:

    Area= 匹配参数Area= 字面意思

    (?P&lt;Area&gt; 将正则表达式捕获组命名为Area

    [^,=]* 0 次或多次出现的字符类[^,=] 匹配不等于,= 的字符

    ) 命名捕获组结束

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-27
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 2017-05-03
    • 2019-11-26
    相关资源
    最近更新 更多