【问题标题】:Drop rows from Dataframe [duplicate]从数据框中删除行[重复]
【发布时间】:2020-08-27 22:37:37
【问题描述】:

我正在尝试从我的数据框中删除满足一组条件的行。但是,它似乎不起作用。

以下是我目前尝试过的两个版本都没有成功:

尝试 1

df = df.drop(df[(df['Factorization'] != 0.5) & (df['Value'] != 30) & (df['Total'] == None)].index)

尝试 2

df.drop(df[(df['Factorization'] != 0.5) & (df['Value'] != 20) & (df['Total'] == None)].index, inplace = True)

请有人指出我哪里出错了。

【问题讨论】:

  • 请提供一个可重现的例子。
  • 你得到的错误是什么?
  • 我实际上并没有收到错误。我运行 print(len(df.index)) 来检查代码之后的行数,我注意到行数与运行 df.drop 之前保持一致
  • This 很有用。

标签: python pandas dataframe drop


【解决方案1】:

绕过它的一种方法是不使用 drop by,而是通过在 df 前面添加 ~ 来重新定义 df 以排除这些条件

df = df[~((df['Factorization'] != 0.5) & (df['Value'] != 30) & (df['Total'] == None)]))

我可能会也可能不会在代码中使用太多 ()。请试一试

【讨论】:

  • df = df[~(df['Factorization'] != 0.5) & (df['Value'] > 10) & (df['Total'] != None)] 很大的帮助谢谢。在 df 之前添加 ~ 似乎已经成功了
  • 我很高兴。如果您接受它作为解决方案将不胜感激
猜你喜欢
  • 2012-01-04
  • 2021-05-13
  • 2016-11-02
  • 2012-11-11
  • 1970-01-01
  • 2020-04-03
  • 2015-05-16
  • 2019-12-24
  • 2013-03-07
相关资源
最近更新 更多