从DataFrame列标题中删除非ASCII字符

时间:2017-08-22 08:48:23

标签: python string pandas dataframe unicode

我从MSQL数据库导出了一个逗号分隔值文件(rpt-file结尾)。它只有两列和8行。在记事本中查看文件,一切看起来都不错。我尝试使用以下代码将数据加载到pandas数据框中:

import pandas as pd
with open('file.csv', 'r') as csvfile:        
    df_data = pd.read_csv(csvfile, sep=',' , encoding = 'utf-8')
print(df_data)

当打印到控制台时,第一列标题名称是错误的,在第1列的开头有一些额外的字符,我没有错误,但很明显第一列在我的代码中被错误地解码:{{3} }

任何人对如何做到这一点都有任何想法?

1 个答案:

答案 0 :(得分:2)

这里有一个可能的选项:在加载它们之后修复这些标题:

df.columns = [x.encode('utf-8').decode('ascii', 'ignore') for x in df.columns]

str.encode后跟str.decode调用将删除这些特殊字符,只留下ASCII范围内的字符:

>>> 'aSA'.encode('utf-8').decode('ascii', 'ignore')
'aSA'