2017-05-23 79 views
0

我有以下的数据帧熊猫过滤数据帧断切片值

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 
+0

这个例子的预期输出是什么? – Allen

回答

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()]