我正在使用事务数据(客户购买)的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']))