【问题标题】:Remove data frame rows based on condition根据条件删除数据框行
【发布时间】:2022-10-14 19:30:52
【问题描述】:
df2 = df[df['columA:ColumnZ'] != "Michigan"]

我不是在“columN:Column”中只放一个列名,而是试图让它应用于所有列。

我会在括号内放什么而不是“columNS:ColumnS”

【问题讨论】:

    标签: python pandas dataframe numpy csv


    【解决方案1】:

    如果需要 columAColumnZ 之间的测试列,请使用 DataFrame.locDataFrame.all 如果不匹配则获取行:

    print (df)
         columA columB columC ColumnZ         A
    0  Michigan      a      d       f         w
    1         a      b      c       j         s
    
    
    df2 = df[(df.loc[:, 'columA':'ColumnZ'] != "Michigan").all(axis=1)]
    print (df2)
      columA columB columC ColumnZ  A
    1      a      b      c       j  s
    

    如果需要测试所有列:

    df3 = df[(df != "Michigan").all(axis=1)]
    

    【讨论】:

    • 谢谢。但是调用df2时,数据框显示NAN
    • 您可以添加一些数据样本,3 行,4 列吗?
    • 一个例子:100+ 标题列,1000+ 行,每行 100 有 100 个随机城市名称。我想删除至少有 1 次提及“密歇根”的所有行
    • 不,这不起作用..
    • @luxstack - 我添加了数据样本并完美地工作 - 第一行被删除,因为存在 Michigan 的列,你的数据不同吗?
    猜你喜欢
    • 2018-06-04
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多