簡體   English   中英

在 pandas 中拆分 object dtype 列

[英]Splitting an object dtype column in pandas

我的 DF 看起來像有多個定界符 (, =) 以及 int 和 str 的組合。

DF 類型為 object(未轉換為字符串)

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

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

我想使用分隔符“=”拆分它以獲取區域信息。 有沒有辦法做到這一點

我的 DF 看起來有多個分隔符 (, = ) 以及 int 和 str 的組合。

DF 類型是 object (不轉換為字符串)

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

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

正則表達式解釋:

Area=來匹配參數Area=字面意思

(?P<Area>將正則表達式捕獲組命名為Area

[^,=]* 0 次或多次出現字符 class [^,=]匹配不等於,=的字符

)命名捕獲組的結尾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM