Как разделить строку в Python, используя DF.split - PullRequest
0 голосов
/ 15 марта 2019

Извините, если этот вопрос уже был задан. Я не могу найти ответ в интернете.

У меня есть 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

Средний элемент, из которого я борюсь, чтобы извлечь его. Любая помощь приветствуется. Спасибо

1 Ответ

3 голосов
/ 15 марта 2019

Используйте индексирование по str:

df=Positions['position'].str.split(pat="_")
print (df)

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]
Name: position, dtype: object

print (df.str[0])
print (df.str[1])
print (df.str[2])

Или создайте новый фрейм данных:

df = Positions['position'].str.split(pat="_", expand=True)
print (df)
      0         1       2
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

И при необходимости выберите каждый столбец:

print (df[0])
print (df[1])
print (df[2])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...