我需要找到普通用户
__;数据集如下所示:
User_ID CODE
A12 AAada __fa
F453 21 ads
J43 Has AA
... ...
H21 MNasdf
L32 sad 21
M54 43__12 asd
... ...我应该做的是:
__的所有用户,即A12和M54;我尝试使用regex对用户进行过滤,在数字(但也包括^[^0-9]*$ )的情况下使用regex(但也可以使用df.CODE.str.contains('^\d+\'),在__的情况下使用/[$-/:-?{-~!"^_[]]/。
发布于 2020-08-11 02:14:01
您可以将| (或)与str.contains()一起使用,|将三种模式分开:
df = df[df['CODE'].str.contains('\d|__|AA')]
Out[3]:
User_ID CODE
0 A12 AAada __fa
1 F453 21 ads
2 J43 Has AA
5 L32 sad 21
6 M54 43__12 asd发布于 2020-08-11 02:14:12
您可以为系列series.str.contains()使用字符串访问器。这是用户指南
以及解决方案的代码
pats = ['AA', '__', '\d']
mask = {}
for pat in pats:
mask[pat] = df.CODE.str.contains(pat, regex=True)
# regex=True is default, shown here for demonstration
print()
print(mask[pat])输出
0 True
1 False
2 True
3 False
4 False
5 False
Name: CODE, dtype: bool
0 True
1 False
2 False
3 False
4 False
5 True
Name: CODE, dtype: bool
0 False
1 True
2 False
3 False
4 True
5 True
Name: CODE, dtype: bool您可以使用这些掩码中的每一个来过滤稍后的数据。在这种情况下,最好是把它们作为单独的面具保存,因为它们似乎有重叠。
https://stackoverflow.com/questions/63350473
复制相似问题