如何删除制表符分隔CSV指定列?Pandas代码报错求助
问题解答
1. 代码是否适用于制表符分隔的CSV?
原代码不适用于制表符分隔的CSV,因为pd.read_csv()默认以逗号(,)作为字段分隔符。如果你的文件是制表符分隔格式,需要在read_csv中显式指定分隔符参数sep='\t',修改后的读取代码如下:
data = pd.read_csv('TradedInstrument_20230331_test.csv', sep='\t')
至于删除列的data.drop()逻辑,只要文件读取正常,这部分代码不受分隔符类型影响,可以直接复用。
2. 解决UnicodeDecodeError错误
报错中的0xfc字节对应德语字符ü,说明目标文件并非UTF-8编码,大概率是latin-1或cp1252编码。你需要在read_csv中指定正确的编码参数:
# 尝试latin-1编码 data = pd.read_csv('TradedInstrument_20230331_test.csv', sep='\t', encoding='latin-1') # 若上述无效,可尝试cp1252编码 # data = pd.read_csv('TradedInstrument_20230331_test.csv', sep='\t', encoding='cp1252')
如果不确定文件编码,可使用chardet库自动检测:
import chardet with open('TradedInstrument_20230331_test.csv', 'rb') as f: detect_result = chardet.detect(f.read()) print(detect_result['encoding'])
运行后会输出检测到的编码,将其传入encoding参数即可正常读取文件。
内容的提问来源于stack exchange,提问作者Patrick_Chong
相关产品推荐
相关产品推荐

