Python pandas.DataFrame.replace函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.replace方法的使用。

Python pandas.DataFrame.replace函数方法的使用-CJavaPyPandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.replace方法的使用。icon-default.png?t=LA92https://www.cjavapy.com/article/738/

可直接查看网站内容

函数参数:DataFrame.replace(self, to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad')

https://github.com/pandas-dev/pandas/blob/v1.0.5/pandas/core/frame.py#L4156-L4173

to_replace中给出的值替换为value

DataFrame的值被动态替换为其他值。这与使用.loc.iloc进行更新不同,后者要求您指定要使用某个值进行更新的位置。

参数:

to_replace 

str, regexlist, dict,

Series, intfloat, 或 None

如何找到将要被替换的值。

numeric, str 或 regex:

1)numeric: 等于to_replace的数值将被替换为value

2)str: 完全匹配to_replace的字符串将被替换为值

3)regex: 匹配to_replace的正则表达式将被替换为值

str, regex, 或 numeric的list:

1)首先,如果to_replacevalue都是列表,

那么它们的长度必须相同。

2)其次,如果regex=True

那么两个列表中的所有字符串都将被解释为regex

否则它们将直接匹配。这对值没有太大影响,

因为您只能使用几种可能的替代正则表达式。

3)str、regexnumeric规则同样适用。

dict : 

1)dict可用于为不同的现有值指定不同的替换值。

例如,{'a': 'b', 'y': 'z'}将值'a'替换为'b'

将值'y'替换为'z'

要以这种方式使用dictvalue参数应该为None

2)对于数据格式,dict可以指定在不同的列中替换不同的值。

例如,

{'a': 1, 'b': 'z'}查找列'a'中的值1和列'b'中的值'z'

并用value中指定的值替换这些值。在这种情况下,

value参数不应该是None。除了指定要搜索的列之外,

您可以将此看作传递两个列表的特殊情况。

3)对于一个DataFrame嵌套字典,

用于DataFrame嵌套字典,

例如,{'a': {'b': np.nan}}

读取如下:'a'列中查找值'b'

并将其替换为NaN

要以这种方式使用嵌套的dictvalue参数应该为None

您也可以嵌套正则表达式。

注意列名(嵌套字典中的顶级字典键)不能是正则表达式。

None:

1)这意味着regex参数必须是字符串、

编译regexlistdictndarray或这类元素的Series。

如果值也是None,那么这必须是嵌套字典或序列。

请参阅示例部分以获得这些示例。

value : scalar, dict, list, str, regex, 默认 None:

值,以替换与to_replace匹配的任何值。

对于DataFrame,可以使用一组值来指定为每个列使用哪个值

(不属于该数据格式的列将不会被填充)。

这些对象的正则表达式、字符串和列表或字典也是允许的。

inplace :bool, 默认 False

如果是真的,在适当的地方。

注意:这将修改这个对象上的任何其他视图(例如,

DataFrame中的一个列)。如果为真,则返回调用者。

limit int, 默认None

向前或向后填充的最大尺寸gap。

regex :bool或与to_replace相同的类型, 默认False

是否将to_replace/value解释为正则表达式。

如果这是True,那么to_replace必须是一个字符串。

也可以是正则表达式或正则表达式的列表、dict或数组,

在这种情况下to_replace必须为None

method :{‘pad’, ‘ffill’, ‘bfill’, None}

当用于替换时,当to_replace是标量时,

列表或元组,值为None时使用的方法。

在版本0.23.0中更改:添加到DataFrame中。

返回值:

DataFrame

更换后的对象。

Raises:

AssertionError

如果regex不是boolto_replace不是None

TypeError

1)如果to_replace是一个dict

而值不是listdictndarraySeries

2)如果to_replaceNone

并且regex不能编译为正则表达式,

或者是listdictndarraySeries

3)替换多个booldatetime64对象时,

to_replace的参数与被替换值的类型不匹配

ValueError

如果一个列表或一个ndarray被传递给

to_replacevalue

但是它们的长度不相同。

Notes

1) 正则表达式替换在底层使用re.sub执行。替换re.sub的规则是相同的。

2) 正则表达式将只替换字符串,这意味着您不能提供匹配浮点数的正则表达式,也不能期望框架中具有数字dtype的列被匹配。但是,如果这些浮点数是字符串,那么您可以这样做。

3) 这个方法有很多选项。我们鼓励您试验和尝试这种方法,以获得它如何工作的直觉。

4) 当使用dict作为to_replace值时,就像dict中的键是to_replace部分,而dict中的值是值参数一样。

个人学习,交流分享。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值