Pandas过滤掉切片值的数据帧

时间:2017-05-23 01:48:19

标签: python pandas

我有以下数据框

names        brand
A7           Audi
TrailBlazer  Chevy
RS8          Audi
Tahoe        Chevy
Corvette     Chevy
GL450        Mercedes

我想过滤一段名字列的df。我想使用值的最后一个字符。如果最后一个字符是一个数字,我想“忽略”那个并且只返回其他结果。

我正在尝试这个。

new_df = df[(df['names'] == (lambda x: x['names'].str[-1]).isdigit())]

当我这样做时,它返回一个空数据帧。

我希望能够归还。

names       brand
TrailBlazer Chevy
Tahoe       Chevy
Corvette    Chevy

1 个答案:

答案 0 :(得分:2)

您可以使用str[-1]访问字符串的最后一个字符,并使用str.isdigit()来测试条件:

df[~df.names.str[-1].str.isdigit()]
#         names   brand
#1  TrailBlazer   Chevy
#3        Tahoe   Chevy
#4     Corvette   Chevy

或者更安全的是,如果您在名称列中有数字值:

df[~df.names.astype(str).str[-1].str.isdigit()]