假设我有一个像这样的熊猫数据帧:
Word Rating
0 Bear 1
1 Yuck 2
2 Girl 3
3 Yellow 4
如何在pandas中使用正则表达式来过滤掉包含以字母"y“开头的单词,但保留数据帧格式的行?我知道正则表达式模式应该是r"\b^y\w+\b“。
预期输出:
Word Rating
0 Bear 1
2 Girl 3
发布于 2017-08-03 17:15:15
使用startswith
In [1187]: df[~df.Word.str.startswith('Y')]
Out[1187]:
Word Rating
0 Bear 1
2 Girl 3
或者,regex match
In [1203]: df[df.Word.str.match('^[^Y]')]
Out[1203]:
Word Rating
0 Bear 1
2 Girl 3
发布于 2017-08-03 17:18:49
正则表达式不是必需的。只需检查第一个字母:
df[df.Word.str[0] != 'Y']
发布于 2017-08-03 17:21:45
使用lower
和startswith
同时获取大写'Y‘和小写'y':
df[~df.Word.str.lower().str.startswith('y')]
输入:
df
Word Rating
0 Bear 1
1 Yuck 2
2 Girl 3
3 Yellow 4
4 yes 5
5 color 6
输出:
Word Rating
0 Bear 1
2 Girl 3
5 color 6
https://stackoverflow.com/questions/45490699
复制