【问题标题】:Pandas query function with like and date带有喜欢和日期的 Pandas 查询功能
【发布时间】:2018-01-25 18:57:10
【问题描述】:

我有一个 python 函数,它获取一个 pandas 数据帧并通过 DataFrame 的“查询”函数对其执行条件。

像 =、!= 这样简单的条件,一切都可以。

但我希望它执行带有“like”的条件。这可能吗?

另外,我想检查某个列是否大于“现在”...

我该怎么做?

【问题讨论】:

  • 这取决于你想如何使用like。答案会相应改变。

标签: python regex pandas


【解决方案1】:

我认为LIKE 功能没有实现到query 原生方式,需要containsmatchsimilar functions

与今天比较:

now = pd.datetime.today()

df.query("col > @now")

【讨论】:

    【解决方案2】:

    演示:

    In [166]: now = pd.datetime.today()
    
    In [167]: df
    Out[167]:
            date              s
    0 2017-01-18  sample string
    1 2017-12-01      blah-blah
    2 2017-08-17          a key
    
    In [168]: df.query("s.str.contains('key')", engine='python')
    Out[168]:
            date      s
    2 2017-08-17  a key
    
    In [169]: df.query("s.str.contains('key') or date > @now", engine='python')
    Out[169]:
            date          s
    1 2017-12-01  blah-blah
    2 2017-08-17      a key
    

    【讨论】:

    • 太棒了!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-06-26
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 2010-10-07
    相关资源
    最近更新 更多