pandas: преобразовать тип 'object'
Необходимо рассчитать СРМ, однако в датасете необходимый столбец 'Spend' имеет значение 'object',
import pandas as pd
df=pd.read_csv('test_data.csv',sep=',')
metrics_cpm = df.groupby('Buyer', as_index= False).agg({'Spend': 'sum', 'Impressions': 'sum'})metrics_cpm
metrics_cpm['Cost Per Mille'] = round(metrics_cpm['Spend']/metrics_cpm['Impressions']*1000, 5)metrics_cpm
попробовал поменять тип столбца с помощью команды:
df['Spend'] = df['Spend'].str.replace(',','.','').astype(np.float64)
однако ошибка сохраняется, как мне произвести рассчет?
Ответы (1 шт):
Добавьте параметр decimal=',' в вызов pd.read_csv, это более правильно, чем делать replace вручную потом. Конечно, это странноватая ситуация, когда у вас и разделитель колонок и разделитель разрядов один и тот же символ ,, но в принципе такое может быть, в этом случае содержимое колонок приходит в кавычках и Pandas может разобраться где что.
Либо, если хочется всё же менять вручную, можно делать .str.replace(',','.'), а ваш вариант .str.replace(',','.','') заменял всё в на пустую строку, которая превращалась в итоге в значения NA после преобразования в float.


