Метод replace
Метод replace применяется к DataFrame
и заменяет одни значения на другие. Первым
параметром можно передать значение или список
значений для замены, вторым - новое значение
или список новых значений. Метод возвращает
новый DataFrame с заменёнными значениями,
не изменяя исходный.
Синтаксис
df.replace(to_replace, value, inplace=False, limit=None, regex=False, method=None)
Пример
Давайте заменим значение 2 на 20 в столбце 'a':
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.replace(2, 20))
Результат выполнения кода:
a b
0 1 10
1 20 20
2 3 30
3 4 40
4 5 50
Пример
Заменим сразу несколько значений в разных столбцах с помощью словаря:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.replace({1: 100, 20: 200}))
Результат выполнения кода:
a b
0 100 10
1 2 200
2 3 30
3 4 40
4 5 50
Пример
Заменим значения с использованием регулярного выражения:
import pandas as pd
df = pd.DataFrame({
'a': ['abcde', 'article', 'user', 'data'],
'b': [10, 20, 30, 40]
})
print(df.replace(r'^a.*', 'new_value', regex=True))
Результат выполнения кода:
a b
0 new_value 10
1 new_value 20
2 user 30
3 data 40
Пример
Заменим значения только в определённом столбце:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
print(df.replace({'a': 3}, 300))
Результат выполнения кода:
a b
0 1 10
1 2 20
2 300 30
3 4 40
4 5 50
Пример
Изменим исходный DataFrame с помощью
параметра inplace:
import pandas as pd
df = pd.DataFrame({
'a': [1, 2, 3, 4, 5],
'b': [10, 20, 30, 40, 50]
})
df.replace(4, 400, inplace=True)
print(df)
Результат выполнения кода:
a b
0 1 10
1 2 20
2 3 30
3 400 40
4 5 50