【问题标题】:Create new dataframe Condition wise [duplicate]创建新的数据框条件明智[重复]
【发布时间】:2021-08-09 07:55:16
【问题描述】:

我有 df 喜欢下面提到的这个

    a   b   marks
 0  1   2    25.0
 1  2   3    96.2
 2  3   6    87.0
 3  4   5    32.2

我想要两个使用某些条件的数据框,条件是如果标记 >70.0 那么我想要 df_pass =

      a   b   marks
   1  2   3    96.2
   2  3   6    87.0

否则

      a   b   marks
  0   1   2    25.0
  3   4   5    32.2

【问题讨论】:

    标签: python pandas if-statement


    【解决方案1】:

    使用groupby,您可以像这样拆分数据框

    df1, df2 = [x for _, x in df.groupby(df['marks'] > 70)]
    

    【讨论】:

      【解决方案2】:

      您可以使用DataFrame.apply 应用过滤器,并且可以针对您的条件使用 lambda:

      pass_lambda = lambda x: x['marks'] > 70
      df_pass = df[df.apply(pass_lambda, axis=1)]
      df_fail = df[df.apply(lambda x: not pass_lambda(x), axis=1)]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-04
        • 2021-08-06
        • 1970-01-01
        • 1970-01-01
        • 2012-06-09
        • 2018-07-01
        • 2022-01-18
        • 2019-07-25
        相关资源
        最近更新 更多