1

我正在将数据dataframe从 Excel 工作表加载到 pandas 中,并且我想转换的许多列中有很多非显示字符。

最普遍的是在收缩中使用撇号;例如doesn't,结果为doesn’t.

过去我使用过:

str.encode('ascii', errors='ignore').decode('utf-8')

但这需要我知道我需要修复哪些列。

在这种情况下,我有 103 列,每列都可能包含此类问题或其他类型的问题。

我正在寻找一种方法来替换整个dataframe.

有没有一种快速简便的方法可以在整个过程中执行此操作,dataframe而无需将每一列传递给函数?

4

2 回答 2

0

在阅读 excel 时,您应该添加encoding='utf-8'

df = pd.read_excel('App Stuff.xlsx', encoding='utf-8')

或使用encoding='unicode-escape'

于 2020-05-09T16:12:32.813 回答
0

尝试找到适合您的文件的最佳编码:

from encodings.aliases import aliases
alias_values = set(aliases.values())

for value in alias_values:
    try:
        df = pd.read_csv(your_file, encoding=value) # or pd.read_excel
        print(value)
    except:
        continue

然后用正确的编码打开你的文件,看看哪一个效果最好!

于 2020-05-09T17:30:30.303 回答