首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫:如何根据列表从数据中删除行?

熊猫:如何根据列表从数据中删除行?
EN

Stack Overflow用户
提问于 2017-04-07 04:18:10
回答 3查看 46.7K关注 0票数 27

我有一个带有一些“坏”行的dataframe customers,这个dataframe中的关键是CustomerID。我知道我应该放下这几排。我有一个名为badcu的列表,它表示每个值对应于不同的“坏”客户。

然后我有另一个数据,让我们称之为sales,所以我想删除所有针对坏客户的记录,即badcu列表中的记录。

如果我做下面的事情

代码语言:javascript
运行
复制
sales[sales.CustomerID.isin(badcu)]

我得到了一份数据,上面有我想要删除的记录,但是如果我做了一个

代码语言:javascript
运行
复制
sales.drop(sales.CustomerID.isin(badcu))

它返回一个dataframe,其中删除了第一行(这是一个合法的订单),其余的行完好无损(不删除坏行),我想我知道为什么会这样,但我仍然不知道如何删除不正确的客户id行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-04-07 04:42:26

你需要

代码语言:javascript
运行
复制
new_df = sales[~sales.CustomerID.isin(badcu)]
票数 68
EN

Stack Overflow用户

发布于 2017-04-07 05:05:38

您也可以使用query

代码语言:javascript
运行
复制
sales.query('CustomerID not in @badcu')
票数 5
EN

Stack Overflow用户

发布于 2017-04-07 04:37:32

我认为最好的方法是按索引,试一试,让我知道。

代码语言:javascript
运行
复制
sales.drop(sales[sales.CustomerId.isin(badcu)].index.tolist())
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43269548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档