在Pandas中使用.isin()函数从数据框中排除/过滤值



我正在使用事务数据(客户购买)的Pandas数据框架,并希望排除列'CUSTOMER_ID'中包含某些客户编号的行。

为了实现这一点,我创建了一个要排除的客户号码列表:excluded_customers = ['2000', '2100', '3100', '4000', '4100', '4200', '4300', '4400', '4700', '6802']

然后我使用。isin()函数相应地过滤df并将其保存在新的df2中:df2 = df[(df['CUSTOMER_ID'].isin(excluded_customers) == False)]

然后我想按列'CUSTOMER_ID'按升序排序新的df2。但是,排除的客户号仍然出现在数据框中:df2.sort_values(by=['CUSTOMER_ID'])

我希望你能给我一些提示,为什么他们没有从df中删除。

谢谢!

将列转换为字符串,并使用~:

df2 = (df[~df['CUSTOMER_ID'].astype(str).isin(excluded_customers)]
.sort_values(by=['CUSTOMER_ID']))

相关内容

  • 没有找到相关文章

最新更新