【问题标题】:Pandas delete row based on condition [duplicate]熊猫根据条件删除行[重复]
【发布时间】:2019-04-19 18:11:15
【问题描述】:
print (amazon.shape)
print (amazon.drop(amazon[(amazon["Id"] > 150492) & (amazon["Id"] < 150530 )].index).shape)
print (amazon.shape)

输出:

(525814, 10)
(525782, 10)
(525814, 10)

为什么不从主数据框中删除 32 行?

【问题讨论】:

  • 因为drop 没有就位,你需要写drop(your code, inplace=True) 而不打印。或amazon = amazon.drop(amazon....)

标签: python pandas data-science


【解决方案1】:

参见dropdocs(重点是我的):

DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')

inplace : bool,默认为 False

如果为真,就地执行操作并返回无。

drop 默认情况下不就位。你必须明确告诉它是:

amazon.drop(amazon[(amazon["Id"] > 150492) & (amazon["Id"] < 150530 )].index, inplace=True)

或将其重新分配给amazon(或其他任何东西):

amazon = amazon.drop(amazon[(amazon["Id"] > 150492) & (amazon["Id"] < 150530 )].index)

【讨论】:

    【解决方案2】:

    您需要添加参数 inplace=True 否则它只会返回删除行的数据框的副本。

    【讨论】:

      猜你喜欢
      • 2017-10-04
      • 2021-04-14
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 2019-11-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多