[英]Pandas filtering (~isin) is not working
This is my data这是我的数据
omzet_activity_paid_count_january_devices
No Text
1 dcbjkd
2 hdgfhds
3 dsdfs
33 jhsda
40 ydgyua
I am expecting to filter data like this我期待像这样过滤数据
omzet_activity_paid_count_january_devices
No Text
3 dsdfs
40 ydgyua
This is what I did这就是我所做的
user_internal = ['1','2','33']
omzet_activity_paid_count_january_devices = omzet_activity_paid_count_january_devices[~omzet_activity_paid_count_january_devices.No.isin(user_internal)]
The code above is not working, the output still like my original dataframe, what did I miss?上面的代码不起作用,输出仍然像我原来的数据框,我错过了什么?
I think there is problem you have mixed types - numeric with strings.我认为你有混合类型的问题 - 数字和字符串。
omzet_activity_paid_count_january_devices.No.dtype
dtype('O')
omzet_activity_paid_count_january_devices.No.head().tolist()
[1, 2, 3, 33, 40]
So convert column No
to strings:因此将列
No
转换为字符串:
user_internal = ['1','2','33']
mask = ~omzet_activity_paid_count_january_devices.No.astype(str).isin(user_internal)
omzet_activity_paid_count_january_devices = omzet_activity_paid_count_january_devices[mask]
Or change string
s from list to int
s:或者将
string
s 从 list 更改为int
s:
user_internal = [1,2,33]
mask = ~omzet_activity_paid_count_january_devices.No.isin(user_internal)
omzet_activity_paid_count_january_devices = omzet_activity_paid_count_january_devices[mask]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.