我想在另一列中提取包含特定字符串的数据。
例如,提取的目标是“另一列字符串+3位数字”字符。
它有错误。我想获取 TARGET 行。
df = pd.DataFrame({'col1':['xxxx', 'yyyy', 'zzzz'],'col2':['xxxx123','yyyy1234','aaa123']})
col1 | col2
xxxx | xxxx123 <- TARGET
yyyy | yyyy1234 <- Not TARGET
zzzz | aaaa123 <- Not TARGET
这是我的代码,它不起作用。
print(df[df['col1'].str.match(df['col2'] + [0-9][0-9][0-9])])
我已经尝试过 str.contains 和 str.match 以及 isin。 可能我不知道如何使用它们。
请告诉我怎么做。
最佳答案
两个模式匹配,并过滤dataframe
cond1 = df.col2.str.extract('([A-Za-z]+)\d', expand = False).eq(df.col1)
cond2 = df.col2.str.extract('[A-Za-z](\d{3})$', expand = False)
df[(cond1) & (cond2)]
col1 col2
0 xxxx xxxx123@gmail.com
关于python - 使用 Pandas 提取包含特定字符的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53056395/