[英]split several columns using pandas
我想將字符串分成幾列。 例如,我想在下面的數據框中從col2,col3和col5中選擇一些信息(但實際上我有一百多列要做)。
d = pd.DataFrame({
'col1' : ['USA', 'AGN'],
'col2' : ['0|0:0.014:0.986,0.013,0', '1|0:0.02:1.936,0.023,1'],
'col3' : ['1|0:0.024:0.9,0.01345,2', '0|2:0.213:0.92,0.1,2'],
'col4' : ['done', 'done'],
'col5' : ['2|0:0.02:1.936,0.023,1', '1|0:0.024:0.9,0.01345,2']
})
col1 col2 col3 col4 .....
0 USA 0|0:0.014:0.986,0.013,0 1|0:0.024:0.9,0.01345,2 done .....
1 AGN 1|0:0.02:1.936,0.023,1 0|2:0.213:0.92,0.1,2 done .....
我只需要該長字符串的前3個標記 。 然后,我希望可以從如下結果中看到。
col1 col2 col3 col4 col5 ....
USA 0|0 1|0 done 2|0 ....
AGN 1|0 0|2 done 1|0 ....
有什么提示嗎?
如果我正確理解了您的問題,則可以這樣進行:
In [254]: d.replace(r':.*', '', regex=True)
Out[254]:
col1 col2 col3 col4 col5
0 USA 0|0 1|0 done 2|0
1 AGN 1|0 0|2 done 1|0
要獲取前三個字符串字符:
>>> d.col2.str[:3]
0 0|0
1 1|0
Name: col2, dtype: object
要分割“:”並采用第一項:
>>> d.col2.str.split(':', expand=True)[0]
0 0|0
1 1|0
Name: 0, dtype: object
要將其應用於一組列:
cols = ['col2', 'col3', 'col5']
d.loc[:, cols] = d.loc[:, cols].apply(lambda s: s.str[:3])
>>> d
col1 col2 col3 col4 col5
0 USA 0|0 1|0 done 2|0
1 AGN 1|0 0|2 done 1|0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.