2017-08-03 64 views
0

假设我有一个熊猫数据帧像这样删除行:使用正则表达式从熊猫数据帧

  Word  Rating 
    0  Bear  1 
    1  Yuck  2 
    2  Girl  3 
    3  Yellow 4 

如何使用在熊猫正则表达式来筛选出具有以字母开头的单词的行“y”但保持数据帧格式?我知道正则表达式模式将是R “\ B [^ Y] \ w + \ b” 的

预期输出:

  Word Rating 
    0 Bear 1 
    2 Girl 3 

回答

1

使用startswith

In [1187]: df[~df.Word.str.startswith('Y')] 
Out[1187]: 
    Word Rating 
0 Bear  1 
2 Girl  3 

或者说,正则表达式match

In [1203]: df[df.Word.str.match('^[^Y]')] 
Out[1203]: 
    Word Rating 
0 Bear  1 
2 Girl  3 
0

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

df[df.Word.str[0] != 'Y'] 
0

使用lowerstartswith得到大写字母 '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