如何使用正则表达式在Pandas中过滤行?

如何使用正则表达式在Pandas中过滤行?

正则表达式(regex)是定义搜索模式的字符序列。要使用正则表达式在Pandas中过滤行,我们可以使用 str.match() 方法。

更多Pandas相关文章,请阅读:Pandas 教程

步骤

  • 创建可变大小的二维异构表格数据, df
  • 打印输入的DataFrame, df
  • 为表达式初始化一个变量 regex 。提供一个字符串值作为regex,例如,字符串 ‘J.*’ 将过滤所有以字母’J’开头的条目。
  • 使用 df. column_name.str.match(regex)根据提供的regex过滤给定列名中的所有条目。

示例

import pandas as pd

df = pd.DataFrame(
    dict(
        name=['John', 'Jacob', 'Tom', 'Tim', 'Ally'],
        marks=[89, 23, 100, 56, 90],
        subjects=["Math", "Physics", "Chemistry", "Biology", "English"]
    )
)

print "输入DataFrame如下:\n", df

regex = 'J.*'
print "应用后", regex, "DataFrame如下:\n", df[df.name.str.match(regex)]

regex = 'A.*'
print "应用后", regex, "DataFrame如下:\n", df[df.name.str.match(regex)]
Python

输出

输入DataFrame如下:

name    marks   subjects
0   John    89      Math
1   Jacob   23      Physics
2   Tom     100     Chemistry
3   Tim     56      Biology
4   Ally    90      English

应用后 J.* DataFrame如下:

    name    marks   subjects
0   John    89      Math
1   Jacob   23      Physics

应用后 A.* DataFrame如下:

    name    marks   subjects
4   Ally    90      English
Python

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册