首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用正则表达式从pandas数据帧中删除行

使用正则表达式从pandas数据帧中删除行
EN

Stack Overflow用户
提问于 2017-08-04 01:14:11
回答 3查看 3.8K关注 0票数 2

假设我有一个像这样的熊猫数据帧:

代码语言:javascript
代码运行次数:0
运行
复制
         Word      Rating
   0     Bear      1
   1     Yuck      2
   2     Girl      3
   3     Yellow    4

如何在pandas中使用正则表达式来过滤掉包含以字母"y“开头的单词,但保留数据帧格式的行?我知道正则表达式模式应该是r"\b^y\w+\b“。

预期输出:

代码语言:javascript
代码运行次数:0
运行
复制
         Word    Rating
    0    Bear    1
    2    Girl    3
EN

回答 3

Stack Overflow用户

发布于 2017-08-04 01:15:15

使用startswith

代码语言:javascript
代码运行次数:0
运行
复制
In [1187]: df[~df.Word.str.startswith('Y')]
Out[1187]:
   Word  Rating
0  Bear       1
2  Girl       3

或者,regex match

代码语言:javascript
代码运行次数:0
运行
复制
In [1203]: df[df.Word.str.match('^[^Y]')]
Out[1203]:
   Word  Rating
0  Bear       1
2  Girl       3
票数 6
EN

Stack Overflow用户

发布于 2017-08-04 01:18:49

正则表达式不是必需的。只需检查第一个字母:

代码语言:javascript
代码运行次数:0
运行
复制
df[df.Word.str[0] != 'Y']
票数 0
EN

Stack Overflow用户

发布于 2017-08-04 01:21:45

使用lowerstartswith同时获取大写'Y‘和小写'y':

代码语言:javascript
代码运行次数:0
运行
复制
df[~df.Word.str.lower().str.startswith('y')]

输入:

代码语言:javascript
代码运行次数:0
运行
复制
df

     Word  Rating
0    Bear       1
1    Yuck       2
2    Girl       3
3  Yellow       4
4     yes       5
5   color       6

输出:

代码语言:javascript
代码运行次数:0
运行
复制
    Word  Rating
0   Bear       1
2   Girl       3
5  color       6
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45490699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档