Рассмотрим следующий столбец в моем наборе данных.

Norm
marketer
summer
vip 
teacher
vip
manager at hotel

Я хочу, чтобы manager at hotel пришел после vip изменения vip на vip of manager, как я могу это сделать?

Выход

Norm
marketer
summer
vip
teacher
vip of manager
manager at hotel
0
user15050871 11 Фев 2021 в 17:13

1 ответ

Лучший ответ

Рассмотрим df:

In [1190]: df = pd.DataFrame({'Norm': ['marketer', 'summer', 'vip', 'teacher', 'vip', 'manager at hotel']})

In [1191]: df
Out[1191]: 
               Norm
0          marketer
1            summer
2               vip
3           teacher
4               vip
5  manager at hotel

Использование:

In [1175]: df['new'] = df.Norm.shift(-1)

In [1194]: ix = df[df.Norm.eq('vip') & df.new.eq('manager at hotel')].index

In [1197]: df.loc[ix, 'Norm'] = df.loc[ix, 'Norm'] + '  of manager'

In [1199]: df.drop('new', 1, inplace=True)

In [1200]: df
Out[1200]: 
               Norm
0          marketer
1            summer
2               vip
3           teacher
4   vip  of manager
5  manager at hotel
1
Mayank Porwal 11 Фев 2021 в 14:32