我有一个excel工作表,我正在阅读大熊猫以进行解析和以后的分析。它具有以下格式。所有值都是字符串。它们将在以后转换为浮点数/整数,但将它们作为字符串有助于解析。
column1 | column2 | column3 |
-----------------------------
12345 |10 |20 |
txt |25 |65 |
35615 |15 |20 |
txt |35 |20 |
我需要获取column1中所有5位数字的索引。始终为5位数。我正在使用以下正则表达式。
\b\d{5}\b
在使用任何内置字符串方法时,让熊猫正确匹配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]
这两个都返回一个空列表。我究竟做错了什么?
答案 0 :(得分:1)
在字符串前添加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()