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

标签 python string pandas dataframe unicode

我已经从 MSQL 数据库导出了一个逗号分隔值文件(rpt 文件结尾)。它只有两列和 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)

当打印到控制台时,第一列标题名称错误,在第一列的开头有一些额外的字符  。我没有收到任何错误,但显然第一列在我的代码中解码错误: Image of output

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

最佳答案

这是一个可能的选项:加载这些 header 后修复它们:

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'

关于python - 从 DataFrame 列标题中删除非 ASCII 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45812978/

相关文章:

python - 为什么使用 __iter__() 方法在实例上调用 list() 会导致递归?

python - 在python中的azure databricks笔记本中发送电子邮件(outlook作为服务器)?

java - 正则表达式、java char + 空格和 char + 符号

python - 加速 Pandas 过滤

python - Pandas 数据框 : Remove secondary upcoming same value

python - 通过 Anaconda 在 Windows 上为 Python 安装 `opencv_contrib`

string - 在远程计算机上使用Invoke-Command时,字符串扩展在PowerShell中不起作用

linux - 删除shell脚本中字符串的一部分

pandas - 合并 geopandas 中的地理数据框(CRS 不匹配)

python - 禁用微调器的背景颜色