在panda中拆分对象数据类型列



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

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

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

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

我想使用分隔符"="以获取区域信息。有什么办法做这个吗

为了使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

Regex解释:

Area=匹配参数Area=

(?P<Area>将正则表达式捕获组命名为Area

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

)命名捕获组结束

最新更新