pandas.DataFrame.replace
-
DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad', axis=None)[source] -
Замена значений, указанных в ‘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.19.2/generated/pandas.DataFrame.replace.html