Pandas如何提取含有指定字符串的行(pandas,开发技术)

时间:2024-05-09 12:15:17 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    Pandas%E5%A6%82%E4%BD%95%E6%8F%90%E5%8F%96%E5%90%AB%E6%9C%89%E6%8C%87%E5%AE%9A%E5%AD%97%E7%AC%A6%E4%B8%B2%E7%9A%84%E8%A1%8C

行的提取(选择)方法

完全匹配

==

部分匹配

str.contains():包含一个特定的字符串

参数na:缺少值NaN处理

参数case:大小写我的处理

参数regex:使用正则表达式模式

str.endswith():以特定字符串结尾

str.startswith():以特定的字符串开头

str.match():匹配正则表达式模式

要提取部分匹配的行,可以使用pandas的(str.xxx())方法,根据指定条件提取的字符串方法。
这次以以下数据为例

首先,展示如何从pandas.DataFrame中提取(选择)行以获得新的pandas.DataFrame。

使用布尔值的布尔列表(数组)或pandas.Series的话,只能提取(选择)True行。

因此,对于具有字符串元素的列,是否能够获得根据条件的布尔列表就足够了。

如果元素与字符串完全匹配,则使用==获取为True的pandas.Series。

pandas.Series字符串方法str.contains()允许获取包含特定字符串的pandas.Series.

请注意,默认情况下,第一个参数中指定的字符串将作为正则表达式模式进行处理,如下所述。

如果元素是缺失值NaN,则默认情况下它将返回NaN而不是True或False。因此,使用pandas.Series提取该行是错误的。

可以通过str.contains()的参数na来指定替换NaN结果的值。

用作条件时,如果na = True,则选择NaN的行,如果na = False,则不选择NaN的行。

默认情况下,区分大小写。如果参数case为False,则case被忽略。

使用str.contains()时要记住的一件事是,默认情况下,指定为第一个参数的字符串将作为正则表达式模式进行处理。

如果参数ragex为False,则确定是否包含第一个参数的字符串本身。

例如,如果要判断是否包含正则表达式的特殊字符,例如?,。,*,则需要设置regex = False。当然,可以指定一个正则表达式模式,以转义\?等特殊字符。

请注意,默认值可能会导致错误。

str.contains()等同于re.search(),并且可以在flags参数中指定正则表达式标志。如稍后所述,还有对应于re.match()的str.match()。

请注意,下面要介绍的str.endswith()如果想要确定end ?,会更容易,如本例所示。

pandas.Series字符串方法str.endswith()可以获取以特定字符串结尾的pandas.Series。

str.endswith()也有一个参数na。如果要选择缺失值NaN的行,则设置na = True;如果不想选择,则将na = False设置。

没有参数case,因此它始终区分大小写。

另外,第一个参数的字符串在确定中照原样使用,而不作为正则表达式模式处理。

pandas.Series字符串方法str.startswith()可以获取以特定字符串开头的pandas.Series。

pandas.Series字符串方法str.match()可以获取与正则表达式模式匹配的pandas.Series。

如上所述,str.match()对应于re.match(),并确定字符串的开头是否与模式匹配。如果不是一开始就为False。

当需要确定是否包括与模式匹配的部分时,不仅在开始时,而且默认使用与上述re.search()等效的re.contains()(regex = True)。str.match()与str.contains()可以以相同的方式指定参数na,case和flag。

本文:Pandas如何提取含有指定字符串的行的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Pandas中DataFrame对象转置的方法是什么下一篇:

2 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18