使用正则表达式过滤重复字符

Filtering repetitive characters using regex

我有一个数据框,

ID  A1      A2
0   A123     1234
1   1111     5568
2   99999    NaN
3   a9999     NaN
4   3456     3456
5   3456     3456
6   NaN    NaN
7   NaN    NaN

我想过滤掉与第 1、2、3 行相似的重复字符的行

我使用了下面的代码

df['Fake_IDs'] = df["A1"].str.match(r'.*(\w)')

然而,这给了我所有具有小重复的字母数字。我有一个阈值,可以容忍同一字符最多重复 3 次。

我想重点过滤那些重复率高的字母/数字,比如最少 4 次到 9 次(比如 1111 / 99999999/ aaaaaaaaa)

想法是在新列中放置一个标识符作为 True 或 False,以便可以针对 True 案例过滤假 ID。

有办法实现吗? 非常感谢您的帮助!

您可以重复参考:

df['Fake_IDs'] = df["A1"].astype(str).str.match(r'.*(\w){3}')

或:

df['Fake_IDs'] = df["A1"].astype(str).str.contains(r'(\w){3}')

输出:

   ID         A1      A2  Fake_IDs
0   0       A123  1234.0     False
1   1       1111  5568.0      True
2   2      99999     NaN      True
3   3      a9999     NaN      True
4   4       3456  3456.0     False
5   5       3456  3456.0     False
6   6        NaN     NaN     False
7   7        NaN     NaN     False
8   8  A00000000     NaN      True