选择数据我有这样使用正则表达式
import pandas as pd
df = pd.DataFrame({'a': ['abc', 'r00001', 'r00010', 'rfoo', 'r', 'r1234'], 'b': range(6)})
a b
0 abc 0
1 r00001 1
2 r00010 2
3 rfoo 3
4 r
5 r1234 5
我现在要选择该数据帧,其中在列a
启动项与r
其次是五个数字的所有列的数据帧。
From here我学会了一会怎么做,如果它开始只是r
没有数字:
print df.loc[df['a'].str.startswith('r'), :]
a b
1 r00001 1
2 r00010 2
3 rfoo 3
4 r
5 r1234 5
像这样的事情
print df.loc[df['a'].str.startswith(r'[r]\d{5}'), :]
做当然不行的。如何正确地做到这一点?
这样的作品,upvoted。 – Cleb
由于'str.match'正在使用're.match',因此模式可以更改为''r \ d {5}'',因为它默认匹配从字符串的开始处 – EdChum
不是原始文章的一部分,但现在如何排除超过5个数字(或任何其他字符)的数字? – Cleb