Заменить все числовые значения в столбце во фрейме данных Python - PullRequest
0 голосов
/ 25 февраля 2020

Я хочу заменить все числовые значения менее 120 на среднее значение, рассчитанное по тому же столбцу в CSV. Я импортировал файл CSV как pd и получил полную таблицу. для вызова фрейма данных я записываю данные, затем получаю файл данных. чтобы вызвать один столбец, я записываю data.steam и для вычисления среднего значения для столбца я пишу average_steam = data.steam.mean (), а затем печатаю average_steam, который возвращает 123. Итак, я хочу, чтобы все значения в столбце steam меньше 120 были заменены на 123. т.е. если у меня 12, 90, 130, 128, 110, я хочу получить 123 123 130 130, 128, все необходимые библиотеки импортированы.

Код, который я пробовал:

data.steam 
average_steam=data.steam.mean() 
print average_steam
data.steamin.replace(data.steamin<=120,average_steam, inplace=True)

Ответы [ 2 ]

1 голос
/ 25 февраля 2020

Здесь ответили здесь .

В вашем случае это будет:

data.loc[data['steam'] < 120, 'steam'] = average_steam

Вот что происходит:

используя data.loc вы выбираете несколько строк и столбцов. Первый аргумент в loc - это строки. Вы выбираете строки, в которых значение в столбце steam меньше 120. Вторым аргументом являются столбцы. В вашем случае вы выбираете steam в качестве столбца. Таким образом, вы выбираете все строки в столбце steam со значением меньше 120. И затем вы присваиваете этим ячейкам значение average_steam.

1 голос
/ 25 февраля 2020

Если df - Ваш pd.DataFrame, а x - столбец для изменения, попробуйте:

df.x[df.x<120]=df.x.mean()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...