#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, спасибо, я редактирую блок кода, это правильно?