Python - 识别数据框中的非ascii字符

时间:2017-12-05 15:03:01

标签: python pandas

目标:需要在各种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

1 个答案:

答案 0 :(得分:0)

您应该在encoding代码中添加read_csv

df = pd.read_csv("C:\\python_files\\data.csv", dtype={'EMP_ID': object}, encoding='utf8')