2017-05-23 78 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()]