使用pandas导入mysql时出现问题:unicodeencodeerror:“charmap”编解码器无法对位置0-7中的字符进行编码:字符Map到< undefined>

tsm1rwdh  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(274)

我试图使用pandas to_sql一次性将 Dataframe 中的多个csv导入mysql数据库。创建引擎后,我将运行以下操作:

folder_path = (file_path)
os.chdir(folder_path)
for file in os.listdir(folder_path):
    if '.csv' in file:
        df = pd.read_csv(file, low_memory = False)
        table_name = str(file.strip('.csv'))
        df.to_sql(table_name, con = engine, if_exists = 'replace')

但是,当我运行代码时,会出现以下错误:“unicodeencodeerror:'charmap'编解码器无法对位置0-7中的字符进行编码:字符Map到”
即使我尝试使用导入向导加载出现错误的特定表,它也只导入42000条记录中的50条。
感谢您的帮助!

l7mqbcuq

l7mqbcuq1#

我不确定这样做是否“正确”,但我发现了一个regex,它只选择utf-8中的字符,删除了 Dataframe 中每个字段的剩余字符:

df.replace({r'[^\x00-\x7F]+':''}, regex=True, inplace=True)

理想情况下,如果有其他解决方案,我希望保留非utf-8字符。

相关问题