如何检查DataFrame含空格条目并处理汽车品牌数据?
处理汽车品牌DataFrame的解决方案
嘿,针对你的需求,我们可以分两步轻松搞定:先删掉那些全是空格的条目,再把有效品牌名改成带省略号的截断格式。下面是具体的代码和说明:
第一步:过滤仅含空格的行
首先,我们需要把Car_Brand列里那些完全由空格组成的行去掉。用str.strip()把字符串前后的空格去掉后,如果结果是空串,就说明原条目全是空格,直接过滤掉这些行就行:
# 移除所有Car_Brand列全为空格的行 df = df[df['Car_Brand'].str.strip() != '']
第二步:截断品牌名并添加省略号
接下来处理品牌名的显示格式。原条目长度是30,后面带了一堆空格,所以先把这些冗余空格去掉,然后截取前6个字符,再加上省略号,就能得到你想要的HYUNDA...效果:
# 处理品牌名:去空格→截断→加省略号 df['Car_Brand'] = df['Car_Brand'].str.strip().str[:6] + '...'
更简洁的链式写法
如果你喜欢更紧凑的代码,可以把两步合并成一个链式操作,看起来更清爽:
df = (df .loc[df['Car_Brand'].str.strip() != '', :] .assign(Car_Brand=lambda x: x['Car_Brand'].str.strip().str[:6] + '...') )
进阶优化:短品牌名不加省略号
要是你不想给短品牌名(比如KIA)加省略号,可以写个自定义函数来处理,只在品牌名长度超过6的时候才截断加省略号:
def format_car_brand(brand): stripped = brand.strip() return stripped[:6] + '...' if len(stripped) > 6 else stripped # 先处理格式,再过滤空行(顺序调换也没问题) df['Car_Brand'] = df['Car_Brand'].apply(format_car_brand) df = df[df['Car_Brand'] != '']
这样操作后,HYUNDAI 就会变成HYUNDA...,全空格的条目也被清理干净了,完全符合你的要求~
内容的提问来源于stack exchange,提问作者emax
相关产品推荐
相关产品推荐

