如何通过正则表达式过滤 Pandas 中的行?
正则表达式(regex)是定义搜索模式的字符序列。要通过正则表达式过滤Pandas中的行,我们可以使用方法。str.match()
步骤
创建二维、大小可变、潜在异构的表格数据df。
打印输入数据帧df。
为表达式初始化一个变量正则表达式。提供一个字符串值作为正则表达式,例如,字符串'J.*'将过滤所有以字母'J'开头的条目。
使用df.column_name。str.match(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 "Input DataFrame is:\n", df
regex = 'J.*'
print "申请后 ", regex, " DataFrame is:\n", df[df.name.str.match(regex)]
regex = 'A.*'
print "申请后 ", regex, " DataFrame is:\n", df[df.name.str.match(regex)]输出结果Input DataFrame is:
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 is:
name marks subjects
0 John 89 Math
1 Jacob 23 Physics
申请后 A.* DataFrame is:
name marks subjects
4 Ally 90 English