Заменить строку/значение в DataFrame целиком
У меня есть очень большой набор данных, в котором я хочу заменить строки на числа. Я бы хотел работать с набором данных, не вводя функцию отображения для каждого ключа (столбца) в наборе. Это похоже на метод fillna, но нужно заменить конкретные строки на соответствующие значения.
Есть ли способ сделать это?
Вот пример моего набора данных:
data
resp A B C
0 1 poor poor good
1 2 good poor good
2 3 very good very good very good
3 4 bad poor bad
4 5 very bad very bad very bad
5 6 poor good very bad
6 7 good good good
7 8 very good very good very good
8 9 bad bad very bad
9 10 very bad very bad very bad
Желаемый результат:
data
resp A B C
0 1 3 3 4
1 2 4 3 4
2 3 5 5 5
3 4 2 3 2
4 5 1 1 1
5 6 3 4 1
6 7 4 4 4
7 8 5 5 5
8 9 2 2 1
9 10 1 1 1
Где значения строк соответствуют: very bad=1, bad=2, poor=3, good=4, very good=5.
Заранее спасибо за помощь!
2 ответ(ов)
Учитывая, что data
— это ваш pandas DataFrame
, вы также можете использовать следующий код для замены значений:
data.replace({'very bad': 1, 'bad': 2, 'poor': 3, 'good': 4, 'very good': 5}, inplace=True)
Этот метод позволит заменить текстовые метки на числовые значения непосредственно в вашем DataFrame. Обратите внимание, что с ключевым словом inplace=True
изменения будут применены к исходному DataFrame без необходимости создания нового.
Если вы хотите заменить строки в вашем DataFrame на числовые значения, то важно сохранять результат в переменной, чтобы изменения были применены. В вашем примере вы используете метод replace
, но не сохраняете его результат. Вот правильный способ сделать это:
data = data.replace(['very bad', 'bad', 'poor', 'good', 'very good'],
[1, 2, 3, 4, 5])
После выполнения этой операции, переменная data
будет содержать обновлённые значения. Если вы просто вызовете data.replace(...)
без присвоения результата, изменение будет видно только в предварительном просмотре, но оригинальная переменная data
останется неизменной. Поэтому не забудьте сохранить изменения, присвоив результат обратно в data
.
Переименование названий столбцов в Pandas
Как изменить порядок столбцов в DataFrame?
Преобразование списка словарей в DataFrame pandas
Установить значение для конкретной ячейки в DataFrame pandas с использованием индекса
Выбор строки из pandas Series/DataFrame по целочисленному индексу