使用Pandas处理CSV:截取Code列后两位字母并删除缺失值行
解决方案
直接给你修正后的可运行代码,执行后就能得到期望结果:
import pandas as pd # 正确读取指定列的数据 df = pd.read_csv("data.csv", usecols=['username', 'code']) # 删除username或code列存在缺失值的行 df = df.dropna(subset=['username', 'code']) # 截取code列字符串的最后两位 df['code'] = df['code'].str[-2:] # 输出处理后的数据 print(df)
原代码的问题说明
- 开头的
df.to_csv("data.csv")完全错误:既会覆盖原数据文件,且此时df还未定义,直接运行会报错,必须删除这行。 usecols参数里的字符串引号不匹配,['username, 'code']要改成['username', 'code'],否则会触发语法错误。- 最后打印的变量名是
dt,但你定义的变量是df,变量名不一致会报错。
关键步骤解释
- 清理缺失值:用
dropna(subset=['username', 'code'])精准指定检查这两列,只要任意一列有缺失就删除整行,完全匹配你的需求。 - 截取code最后两位:利用
str[-2:]对字符串进行切片操作,不管code列原字符串格式如何,都能直接提取最后两个字符。
运行上述代码后,输出结果和你期望的一致:
username code Chris DF Rebecca TY
内容的提问来源于stack exchange,提问作者Koji E
相关产品推荐
相关产品推荐

