【问题标题】:Python Pandas - search for regex match in cells across all columnsPython Pandas - 在所有列的单元格中搜索正则表达式匹配
【发布时间】:2019-02-19 22:31:54
【问题描述】:

我已经看到了如何根据特定列中的匹配项过滤 pandas 数据框的示例。 我可以进一步扩展这个问题,而不是在特定列中搜索,我试图找到一种有效的方法来识别所有列中包含特定正则表达式匹配值的行......嵌套 for 循环效率太低 - 到了这一点将数据表转储到 csv 文件并对其进行 grepping 的速度更快。

必须有一种更高效的 p​​andas 原生方式来完成此任务?

谢谢!

【问题讨论】:

  • 是的,有可能。请使用minimal reproducible example 和我们可以复制并粘贴到终端的实际示例数据进行更多扩展。

标签: python pandas dataframe search


【解决方案1】:

我将采用这篇文章中的现有示例,Select rows from a DataFrame based on values in a column in pandas

import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                   'B': 'one one two three two two one three'.split(),
                   'C': np.arange(8), 'D': np.arange(8) * 2})
print(df)
#      A      B  C   D
# 0  foo    one  0   0
# 1  bar    one  1   2
# 2  foo    two  2   4
# 3  bar  three  3   6
# 4  foo    two  4   8
# 5  bar    two  5  10
# 6  foo    one  6  12
# 7  foo  three  7  14

现在给定上述数据集,我正在寻找一种有效的方法来返回包含来自正则表达式上任何列匹配的值的所有行。

例如,

a search on '1[2,4]|three' should return

3  bar  three  3   6
6  foo    one  6  12
7  foo  three  7  14

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 2011-06-03
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多