Извлечение нескольких слов из столбца данных pandas в один столбец

0
задан gfal0003 20 January 2019 в 18:07
поделиться

2 ответа

Как насчет этого:

df = pd.DataFrame(data = {'A': [1,2,3], 
                          'B': ['a b c d', 'e f g h', 'i j k l']})

y = lambda x : df.loc[df['A']==2,'B'].str[0:2*x+2] + df.loc[df['A']==2,'B'].str[-1]
df.loc[df1['A']==2,'B'] = y(1)

Тогда df находится в розыске:

   A        B
0  1  a b c d
1  2    e f h
2  3  i j k l
0
ответ дан Neofytos Boufidis 20 January 2019 в 18:07
поделиться

Вы были довольно близки к решению, единственная проблема в том, что str[x] возвращает значение, заключенное в объект Series . Вы можете исправить это, извлекая значение из Серии, как показано:

y = lambda x : df.loc[df['colA']==2,'colB'].str.split().str[x].values[0]
df.loc[df['colA']==2,'colB'] = y(0) + ' ' + y(1) + ' ' + y(-1)

Вы также можете добиться того же, используя функцию apply

df.loc[df['colA']==2, 'colB'] = df.loc[df['colA']==2,'colB'].apply(lambda x: ' '.join(x.split()[0:2] + [x.split()[-1]]))
0
ответ дан klvmungai 20 January 2019 в 18:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: