【问题标题】:Best approach to perform AND OR NOT operations dynamically between Dataframes?在 Dataframes 之间动态执行 AND OR NOT 操作的最佳方法?
【发布时间】:2020-05-26 02:50:05
【问题描述】:

我正在寻找解决以下挑战的方法:

  • 我的代码对 Dataframe 应用过滤器并返回一个 Dataframe(任何 DataFrame 或像 Dataset 一样思考)
  • 我可以有 n 个这样的数据帧,最后我需要在它们之间做 AND OR NOT。
  • 所以最后我在它们之间有 n 个数据帧和 (n-1) 个运算符,并且它们之间有括号

在 Python 中执行此操作的最佳方法是什么? 我试图让用户输入尽可能简单。

以下是我的想法:

  1. 用户提供如下纯字符串输入:
  2. ex1:rs1 and rs2 and rs3 and rs4 and rs5
  3. ex2:(rs1 and rs2) and rs3 and rs4 and rs5

不知何故,我会将此字符串转换为OrderedDict。 那么我将不得不动态遍历Dict,从最深层次递归到最高层次。

我很想就更简单的方法或有关此方法的一些 pythonic 伪代码提出建议。

【问题讨论】:

    标签: python python-3.x dataframe dictionary dynamic-programming


    【解决方案1】:

    以您提供的格式从用户那里获取输入:

    rs1 and rs2 and rs3 and rs4 and rs5
    

    使用 Regexp_replace 并制作它:

    rs1 = 1 and rs2 = 1 and rs3 = 1 and rs4 = 1 and rs5= 1 
    

    如果不是,请输入:and rs5= 0

    在 Scala 或 Python 中创建一个最终字符串,然后将其传递为:

    Dataframe.filter("<filter str>")
    

    【讨论】:

      猜你喜欢
      • 2022-01-12
      • 2022-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-02
      • 2013-02-10
      相关资源
      最近更新 更多