Python中Pandas读取Excel文件时中文字符显示问号乱码如何解决?
如题,测试了多种方法都不可行。coding=utf8 ,encoding=‘18030’ 都验证过。求思路,谢谢!
Python中Pandas读取Excel文件时中文字符显示问号乱码如何解决?
关注,我上次服务器转码死活不行,最后直接用 iconv 命令了。
这个问题通常是因为编码不匹配。试试在read_excel里指定engine='openpyxl'和正确的编码,比如:
import pandas as pd
# 方法1:指定engine和编码
df = pd.read_excel('your_file.xlsx', engine='openpyxl')
# 如果仍有问题,检查文件实际编码
# 方法2:先以二进制读取,再用chardet检测编码
import chardet
with open('your_file.xlsx', 'rb') as f:
result = chardet.detect(f.read(10000))
print(f"检测到的编码: {result['encoding']}")
# 根据检测结果调整读取方式
# 对于xlsx文件,通常不需要指定编码,但可以尝试:
df = pd.read_excel('your_file.xlsx', engine='openpyxl')
如果还是乱码,可能是文件本身保存时用了特殊编码,建议用Excel另存为UTF-8格式再读取。
总结:先确认文件编码,再调整读取参数。
没有报错信息,我不知道你遇到的情况跟我的是不是一样。我说一下我碰到的情况。
Pandas 的 read_excel 是基于 xlrd 的,但是这个方法会接收多余的参数,直接 coding=utf8 是传不到 xlrd 那里的。
你可以先用 book = xlrd.open_workbook(文件, encoding_override=‘gb18030’),
再使用 pandas.read_excel(book, engine=‘xlrd’)
你们能不能不要用 Py2 了…这都 2017 年了…
赞同
encoding= ‘gb18030’
这个办法不错。
import numpy as np
import pandas as pd
import xlrd
import openpyxl
book = xlrd.open_workbook(‘op.xlsx’, encoding_override=‘gb18030’)
df = pd.DataFrame(pd.read_excel(book, engine=‘xlrd’))
df_inner = df.loc[df[‘标题’].isin([‘提取内容’])]
df_inner.to_excel(’/opt/op_test.xlsx’)


