Pandas 过滤数据帧切片值
Pandas filter dataframe off sliced value
我有以下数据框
names brand
A7 Audi
TrailBlazer Chevy
RS8 Audi
Tahoe Chevy
Corvette Chevy
GL450 Mercedes
我想从 names 列的一部分中过滤掉 df。我想使用值的最后一个字符。如果最后一个字符是一个数字,我想 'ignore' 和 return 只有其他结果。
我正在尝试这个。
new_df = df[(df['names'] == (lambda x: x['names'].str[-1]).isdigit())]
当我这样做时,它 return 是一个空数据框。
我希望 return 这个。
names brand
TrailBlazer Chevy
Tahoe Chevy
Corvette Chevy
您可以使用str[-1]
访问字符串的最后一个字符,并使用str.isdigit()
测试条件:
df[~df.names.str[-1].str.isdigit()]
# names brand
#1 TrailBlazer Chevy
#3 Tahoe Chevy
#4 Corvette Chevy
或者更安全,如果您在 names 列中有数值:
df[~df.names.astype(str).str[-1].str.isdigit()]
我有以下数据框
names brand
A7 Audi
TrailBlazer Chevy
RS8 Audi
Tahoe Chevy
Corvette Chevy
GL450 Mercedes
我想从 names 列的一部分中过滤掉 df。我想使用值的最后一个字符。如果最后一个字符是一个数字,我想 'ignore' 和 return 只有其他结果。
我正在尝试这个。
new_df = df[(df['names'] == (lambda x: x['names'].str[-1]).isdigit())]
当我这样做时,它 return 是一个空数据框。
我希望 return 这个。
names brand
TrailBlazer Chevy
Tahoe Chevy
Corvette Chevy
您可以使用str[-1]
访问字符串的最后一个字符,并使用str.isdigit()
测试条件:
df[~df.names.str[-1].str.isdigit()]
# names brand
#1 TrailBlazer Chevy
#3 Tahoe Chevy
#4 Corvette Chevy
或者更安全,如果您在 names 列中有数值:
df[~df.names.astype(str).str[-1].str.isdigit()]