我有以下数据框
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 :(得分: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()]