Как заменить строки на основе этого условия?

#python #pandas #dataframe #lambda #apply

Вопрос:

Я хотел бы знать , как сделать эту вещь: например, строка 'AMG 1.4 oil' начинается с 'AMG' того, что мне нужно сделать только 'AMG' это . Если это не начинается с 'AMG' того , что его не следует менять.

Не могли бы вы, пожалуйста, посоветовать мне, как это сделать? Заранее спасибо!

Ответ №1:

 df.loc[df.my_col.str.startswith('AMG'),'my_col'] = 'AMG'
 

Ответ №2:

list-comprehension может использоваться для переименования одного столбца.
Как показано ниже

 df.columns = ['AMG' if 'AMG' in x else x for x in df.columns]
 

Комментарии:

1. Вопросы касались данных, а не столбцов…

Ответ №3:

попробуйте это:

 df = pd.DataFrame({'row': {0: 'AMG 1.4 oil', 1: 'MG 1.4 oil', 2: '1.4 oil', 3: 'oil'}})

df['row'].apply(lambda x : 'AMG' if x[:3]=='AMG' else x)
 

выход:

 0           AMG
1    MG 1.4 oil
2       1.4 oil
3           oil
Name: row, dtype: object
 

Комментарии:

1. @hirolau, спасибо, я редактирую блок кода, это правильно?