gpt4 book ai didi

python - 获取 pandas 数据框中正则表达式匹配的索引不起作用

转载 作者:行者123 更新时间:2023-12-01 06:31:01 25 4
gpt4 key购买 nike

我有一个 Excel 工作表,我正在将其读入 pandas 中进行解析和后续分析。它具有以下格式。所有值都是字符串。它们稍后将被转换为 float /整数,但将它们作为字符串有助于解析。

column1  |  column2 | column3 |
-----------------------------
12345 |10 |20 |
txt |25 |65 |
35615 |15 |20 |
txt |35 |20 |

我需要获取第1列中所有5位数字的索引。它始终是 5 位数。我正在使用以下正则表达式。

\b\d{5}\b

在使用任何内置字符串方法时,我无法让 pandas 正确匹配 5 位数字。

我已经尝试过以下方法。

df.column1.str.contains('\b\d{5}\b', regex=True).index.list()
df.column1.str.match('\b\d{5}\b').index.list()

我期待它回来

[0,2]

这两个都返回一个空列表。我究竟做错了什么?

最佳答案

在字符串前添加r,按boolean indexing过滤并获取要列出的索引值:

i = df[df.column1.str.contains(r'\b\d{5}\b')].index.tolist()
print (i)
[0, 2]

或者,如果只想解析长度为 5 的数值,请使用 ^$ 更改正则表达式作为字符串的开头和结尾:

i = df[df.column1.str.contains(r'^\d{5}$')].index.tolist()

关于python - 获取 pandas 数据框中正则表达式匹配的索引不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59916417/

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