【发布时间】:2019-03-15 10:13:40
【问题描述】:
对不起,如果这个问题已经被问过。我似乎无法在互联网上找到答案。
我有一个看起来像这样的 DF:
Positions=pd.DataFrame( {'position':rateQualityOutTrim['position'].unique() })
Positions
position
0 CITI_52299G66_201210
1 CITI_52299G66_201210
2 CITI_52299G66_202374
3 CITI_52299G66_202734
4 CITI_52299G66_204130
5 CITI_52299G66_204685
6 CITI_52299G66_205140
7 CITI_52299G66_206425
new=Positions['position'].str.split(pat="_", n=2, expand=False)
new
0 [CITI, 52299G66, 201210]
1 [CITI, 52299G66, 201210]
2 [CITI, 52299G66, 202374]
3 [CITI, 52299G66, 202734]
4 [CITI, 52299G66, 204130]
5 [CITI, 52299G66, 204685]
我希望分别提取每个元素。
我用过这个:
Positions.position.apply(lambda x: x.split("_")[0])
0 CITI
1 CITI
2 CITI
3 CITI
Positions.position.apply(lambda x: x.split("_")[-1])
0 201210
1 201210
2 202374
3 202734
4 204130
5 204685
中间的元素我很难提取它。欢迎任何帮助。谢谢
【问题讨论】:
-
Positions['position'].str.split("_").str[1]? -
它不起作用,我担心它说“列表索引超出范围”
标签: python-3.x string pandas split