pandas DataFrame提取Cuisine列值调用partition报错如何解决
解决方案
错误原因
partition是Python原生字符串的内置方法,你直接对pandas Series对象调用该方法,而Series本身没有该方法,因此抛出AttributeError。
修复代码
你需要先通过.str访问器调用pandas封装的字符串处理方法,两种常用实现方式如下:
- 基于partition实现:
df['Category'] = df['Cuisine'].str.partition(',')[0]
str.partition(',')会返回三元组(逗号前内容、逗号、逗号后内容),取索引0的元素即为第一个逗号前的分类值,即使Cuisine列不存在逗号也会直接返回整个字符串,完全匹配需求。
- 基于split实现:
df['Category'] = df['Cuisine'].str.split(',', n=1).str[0]
指定n=1代表仅分割1次,避免无意义的多次分割提升处理效率,再取分割结果的第一个元素即可。
两种写法都可以实现你的需求,运行后得到的Category列和你给出的示例结果完全一致。
内容的提问来源于stack exchange,提问作者Gloria Dalla Costa
相关产品推荐
相关产品推荐

