我有一個資料框如下:
data = {'ID':[44,65,23,40,67,90,64,92],
'Title': ['abc // ghj // kbc // asd.g // 234 // gg',
'bhx // adj // mkf // fg.bhx',
'',
'bhs // jk',
'---',
'aghd',
'abd // ghh // 786',
'Ak8'],
}
df = pd.DataFrame(data)
df
ID Title
0 44 abc // ghj // kbc // asd.g // 234 // gg
1 65 bhx // adj // mkf // fg.bhx
2 23
3 40 bhs // jk
4 67 ---
5 90 aghd
6 64 abd // ghh // 786
7 92 Ak8
如果資料框中可用,我只想提取第二個元素。預期的輸出是:
ID Extracted
0 44 ghj
1 65 adj
2 23
3 40 jk
4 67
5 90
6 64 ghh
7 92
uj5u.com熱心網友回復:
由特殊字符分割。這將給出一個串列。切片串列中的第二個元素
df["Extracted"] =df['Title'].str.split('\//').str[1].fillna('')
ID Title Extracted
0 44 abc // ghj // kbc // asd.g // 234 // gg ghj
1 65 bhx // adj // mkf // fg.bhx adj
2 23
3 40 bhs // jk jk
4 67 ---
5 90 aghd
6 64 abd // ghh // 786 ghh
7 92 Ak8
uj5u.com熱心網友回復:
我們可以str.extract在這里使用:
data["Extracted"] = data["Title"].str.extract(r'^\S // (\S )')
這是一個正則運算式演示,顯示提取邏輯正在運行。
uj5u.com熱心網友回復:
如果你想在沒有正則運算式的情況下使用 pandas
df['Title'] = df['Title'].apply(lambda x : x.split('//'))
df['Title'] = df['Title'].apply(lambda x : x[1] if len(x) >= 2 else '')
df
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/441280.html
上一篇:通過R中的選定組隨機化樣本
