我有一个带有一些“坏”行的dataframe customers,这个dataframe中的关键是CustomerID。我知道我应该放下这几排。我有一个名为badcu的列表,它表示每个值对应于不同的“坏”客户。
然后我有另一个数据,让我们称之为sales,所以我想删除所有针对坏客户的记录,即badcu列表中的记录。
如果我做下面的事情
sales[sales.CustomerID.isin(badcu)]我得到了一份数据,上面有我想要删除的记录,但是如果我做了一个
sales.drop(sales.CustomerID.isin(badcu))它返回一个dataframe,其中删除了第一行(这是一个合法的订单),其余的行完好无损(不删除坏行),我想我知道为什么会这样,但我仍然不知道如何删除不正确的客户id行。
发布于 2017-04-07 04:42:26
你需要
new_df = sales[~sales.CustomerID.isin(badcu)]发布于 2017-04-07 05:05:38
您也可以使用query
sales.query('CustomerID not in @badcu')发布于 2017-04-07 04:37:32
我认为最好的方法是按索引,试一试,让我知道。
sales.drop(sales[sales.CustomerId.isin(badcu)].index.tolist())https://stackoverflow.com/questions/43269548
复制相似问题