Pandas实现Excel的RIGHT函数时出现.str访问器仅支持字符串错误如何解决
问题解决方法
报错原因
Can only use .str accessor with string values!报错的根源是Caller列被pandas自动推断为非字符串类型(如数值型、整型等),无法直接使用.str字符串访问器操作。
修复后完整代码
import pandas as pd # 读取csv时直接指定Caller列为字符串类型,避免自动类型推断出错 df = pd.read_csv('file.csv', dtype={'Caller': str}) # 保留需要的两列 df = df[['Cost', 'Caller']] # 先强制转换为字符串类型,再提取末尾10个字符,和Excel RIGHT函数行为完全一致 df['Cost'] = df['Caller'].astype(str).str[-10:] # 保存时设置index=False避免输出多余的索引列 df.to_csv('file.csv', index=False)
适用说明
- 即使后续处理的CSV文件中
Caller列数据长度不统一,代码也可正常运行:当单元格内容长度不足10位时,会直接返回完整内容,和ExcelRIGHT()函数的默认行为一致 - 两层字符串类型校验(读取时指定dtype+操作前强制转换)可以兼容各种混合类型的原始数据,避免再次触发类型报错
内容的提问来源于stack exchange,提问作者FinestRyeBread
相关产品推荐
相关产品推荐

