[英]how to split the data in a column based on multiple delimiters, into multiple columns, in pandas
我有一個只有一列名為“ALL_category[![在此處輸入圖像描述][1]][1]”的數據框。 一行中有多個名稱,范圍在 1 到 3 之間,並以分隔符“|”、“||”分隔或'|||',可以在每行單詞的開頭、中間或結尾。 我想將該列拆分為多個列,以便新列包含名稱。 我該怎么做?
下面是生成數據框的代碼:
x = {'ALL Categories': ['Rakesh||Ramesh|','||Rajesh|','HARPRIT|||','Tushar||manmit|']}
df = pd.DataFrame(x)
當我使用下面的代碼修改上面的數據框時,它沒有給我任何結果。
data = data.ALL_HOLDS.str.split(r'w', expand = True)
我相信你需要Series.str.extractall
如果希望每個單詞分隔列:
df1 = df['ALL Categories'].str.extractall(r'(\w+)')[0].unstack()
print (df1)
match 0 1
0 Rakesh Ramesh
1 Rajesh NaN
2 HARPRIT NaN
3 Tushar manmit
或者從一個或多個Series.str.strip
和Series.str.split
的評論中對@Chris A 的代碼進行一些更改|
:
df1 = df['ALL Categories'].str.strip('|').str.split(r'\|+', expand=True)
print (df1)
0 1
0 Rakesh Ramesh
1 Rajesh None
2 HARPRIT None
3 Tushar manmit
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.