Это правильный способ заменить строку средним значением столбца в pandas?

avatar
SQB
8 августа 2021 в 19:06
145
1
-1

У меня есть этот фрейм данных, где в некоторых столбцах фрейма данных есть слово "Нет" в виде строки. Вместо этого я пытаюсь заменить эту строку средним значением столбца. Это правильный способ сделать это, поскольку он не работает:

X["column"] = X["column"].replace(to_replace="None", value = X["column"].mean())

Большое спасибо!

Источник
Henry Ecker
8 августа 2021 в 19:11
0

Это слово «Нет» или это питон None?

mozway
8 августа 2021 в 19:13
0

Я представляю "None" (слово "None" в виде строки), я думаю (python) None будет вести себя как NaN.

Henry Ecker
8 августа 2021 в 19:18
1

Итак, я думаю, вопрос в том, какая часть является проблемой. Если бы это был python None, то среднее значение было бы правильным, но ничего не было бы заменено. Если это слово «Нет», то среднее значение не может быть рассчитано. «это не работает» в любом случае не дает информации.

Ответы (1)

avatar
mozway
8 августа 2021 в 19:11
1

Сначала вам нужно заменить "None" на NaN, чтобы можно было вычислить среднее значение. Затем fillna со значением:

df['column'] = df['column'].replace("None", float('nan'))
df['column'] = df['column'].fillna(df['column'].mean())
SQB
8 августа 2021 в 20:04
0

Привет! Большое спасибо. Это мой код прямо сейчас, первая строка, которую вы предложили, работает, но fillna() по какой-то причине не работает. Вот мой код: X["cough"] = X["cough"].replace("None", float('nan')) X["cough"] = X["cough"].fillna(X["cough"].mean()). Первая замена работает, но, к сожалению, fillna() не работает.