目标:需要在各种csv文件中识别非ascii字符的过程
我在某些数据中包含带有非ascii字符的csv文件(例如,数千个中的一个或两个员工ID将具有随机的非ascii字符)。我想识别这些用于清理,但是当我尝试读取csv时我得到一个unicode错误,我认为这是由于非ascii字符相同。 emp_id列通常是一个数字,我在这个例子中将它转换为字符串,因为我正在使用的函数不适用于整数。我需要能够将此代码应用于字符串和整数。
import pandas as pd
import numpy as np
isascii = lambda s: len(s) ==len(s.encode())
df = pd.read_csv("C:\\python_files\\data.csv", dtype={'EMP_ID': object})
for x in df['EMP_ID']:
if not isascii(x):
print(x)
错误
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x85 in position 3: invalid start byte
示例数据
EMP_ID
34998个
34994个
A2 ...
04™Œ
00`,
99999
答案 0 :(得分:0)
您应该在encoding
代码中添加read_csv
:
df = pd.read_csv("C:\\python_files\\data.csv", dtype={'EMP_ID': object}, encoding='utf8')