pandas.DataFrame.replace
-
DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad', axis=None) -
Замена значений, заданных в ‘to_replace’, на ‘value’.
Параметры: to_replace : str, regex, список, словарь, Series, числовое значение или None
-
str или regex:
- str: строка, точно совпадающая с
to_replaceбудет заменена наvalue - regex: выражения регулярных выражений, соответствующие
to_replaceбудут заменены наvalue
- str: строка, точно совпадающая с
-
список строк, выражений регулярных выражений или числовых значений:
- Во-первых, если
to_replaceиvalueявляются списками, их длины должны совпадать. - Во-вторых, если
regex=Trueвсе строки в обоих списках будут интерпретироваться как выражения регулярных выражений, в противном случае они будут соответствовать непосредственно. Это не так важно дляvalueтак как существует всего несколько возможных подстановочных выражений регулярных выражений, которые можно использовать. - Правила для строк и выражений регулярных выражений применяются, как и выше.
- Во-первых, если
-
словарь:
- Вложенные словари, например, {‘a’: {‘b’: nan}}, читаются следующим образом: ищите значение ‘b’ в столбце ‘a’ и замените его на nan. Вы также можете вложить выражения регулярных выражений. Обратите внимание, что имена столбцов (ключи словаря верхнего уровня во вложенном словаре) не могут быть выражениями регулярных выражений.
- Ключи сопоставляются с именами столбцов, а значения сопоставляются со значениями подстановки. Вы можете рассматривать это как частный случай передачи двух списков, за исключением того, что вы указываете столбец для поиска.
-
None:
- Это означает, что аргумент
regexдолжен быть строкой, скомпилированным выражением регулярного выражения или списком, словарем, массивом ndarray или Series таких элементов. ЕслиvalueтакжеNone, то это обязательно должен быть вложенный словарь илиSeries.
- Это означает, что аргумент
Примеры каждого из этих вариантов см. в разделе «Примеры».
value : скалярное значение, словарь, список, строка, выражение регулярного выражения, по умолчанию None
Значение, используемое для заполнения пробелов (например, 0), или словарь значений, определяющий, какое значение использовать для каждого столбца (столбцы, не указанные в словаре, не будут заполнены). Также разрешены выражения регулярных выражений, строки и списки или словари таких объектов.
inplace : boolean, по умолчанию False
Если True, выполняется на месте. Примечание: это изменит любые другие представления этого объекта (например, столбец из DataFrame). Возвращает вызывающий объект, если это True.
limit : целое число, по умолчанию None
Максимальная величина разрыва для заполнения вперед или назад
regex : bool или того же типа, что и
to_replace, по умолчанию FalseУказывает, интерпретировать ли
to_replaceи/илиvalueкак выражения регулярных выражений. Если этоTrue, тоto_replaceдолжен быть строкой. В противном случае,to_replaceдолжен бытьNone, поскольку этот параметр будет интерпретироваться как выражение регулярного выражения или список, словарь или массив выражений регулярных выражений.method : строка, необязательно, {‘pad’, ‘ffill’, ‘bfill’}
Метод, используемый для замены, когда
to_replaceявляетсяlist.Возвращаемое значение: filled : NDFrame
Исключения: AssertionError
- Если
regexне являетсяboolиto_replaceнеNone.
TypeError
- Если
to_replaceявляетсяdictиvalueне являетсяlist,dict,ndarray, илиSeries - Если
to_replaceявляетсяNoneиregexне может быть скомпилировано в выражение регулярного выражения или является списком, словарем, массивом ndarray или Series.
ValueError
- Если
to_replaceиvalueявляютсяlistилиndarray, но их длины не совпадают.
См. также
NDFrame.reindex,NDFrame.asfreq,NDFrame.fillnaПримечания
- Замена выражениями регулярных выражений выполняется под капотом с использованием
re.sub. Правила замены дляre.subтакие же. - Выражения регулярных выражений будут заменять только строки, то есть вы не можете, например, предоставить выражение регулярного выражения, соответствующее числу с плавающей точкой, и ожидать, что столбцы в вашей таблице, имеющие числовой тип данных, будут сопоставляться. Однако, если эти числа с плавающей точкой являются строками, то вы можете это сделать.
- У этого метода очень много вариантов. Рекомендуется экспериментировать и работать с этим методом, чтобы получить интуицию о его работе.
-
© 2008–2012, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/0.18.1/generated/pandas.DataFrame.replace.html