gpt4 book ai didi

python - 从pandas数据帧过滤时如何进行精确的字符串匹配

转载 作者:行者123 更新时间:2023-12-04 20:45:02 26 4
gpt4 key购买 nike

我有一个数据框作为

df

   indx   pids
A 181718,
B 31718,
C 1718,
D 1235,3456
E 890654,

我想返回与 1718 完全匹配的行。

我尝试这样做,但正如预期的那样,它返回 1718 也是子集的行:
group_df = df.loc[df['pids'].astype(str).str.contains('{},'.format(1718)), 'pids']
   indx   pids
A 181718,
B 31718,
C 1718,

当我尝试做这样的事情时,它返回空:
cham_geom = df.loc[df['pids'] == '1718', 'pids']

预期输出:
 indx   pids
C 1718,

任何人都可以帮助我吗?

最佳答案

你可以尝试:

df[df.pids.replace('\D','',regex=True).eq('1718')]

indx pids
2 C 1718,

'\D' : Any character that is not a numeric digit from 0 to 9.



编辑
考虑以下df:
  indx       pids
0 A 181718,
1 B 31718,
2 C 1718,
3 D 1235,3456
4 E 890654,
5 F 3220,1718

执行:
df[df.pids.str.split(",").apply(lambda x: '1718' in x)]
#if not comma only:-> df[df.pids.str.split("\D").apply(lambda x: '1718' in x)]

给出:
  indx       pids
2 C 1718,
5 F 3220,1718

关于python - 从pandas数据帧过滤时如何进行精确的字符串匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55051096/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com