Я пытаюсь найти средний CTR для набора электронных писем, которые я хотел бы классифицировать по времени их отправки, чтобы определить, зависит ли CTR от времени их отправки. Но по какой-то причине панды просто не хотят, чтобы я нашел среднее значение CTR.
Как вы увидите ниже, я пытался использовать функцию среднего значения, чтобы найти среднее значение CTR для каждого времени, но постоянно получаю сообщение об ошибке:
DataError: No numeric types to aggregate
Для меня это означало бы, что мои цифры CTR не являются целыми числами или числами с плавающей запятой, а являются строками. Однако, несмотря на то, что они пришли в виде строк, я уже преобразовал их в поплавки. Я тоже это знаю, потому что если я использую функцию sum () вместо усредненной функции, она работает просто отлично.
Строка кода очень проста:
df.groupby("TIME SENT", as_index=False)['CTR'].mean()
Я не могу себе представить, почему функция суммы сработала бы, а функция среднего не сработала, особенно если ошибка описана выше. У кого-нибудь есть идеи?
РЕДАКТИРОВАТЬ: код, который я использовал, чтобы превратить столбец CTR от процентной доли строки (85,8%), чтобы плавать:
i = 0
for index, row in df.iterrows():
df.loc[i, "CTR"] = float(row['CTR'].strip('%'))/100
i += 1
Ссылка на df.head (): https://ethercalc.org/zw6xmf2c7auw