首页 > 解决方案 > 使用 pandas 保存带有扩展 ascii 分隔符的 csv 文件

问题描述

我有一个包含几乎所有基本 ascii 字符的文件,因此,要将其转换为有意义的 csv 以供我们的数据库导入,我已将计算机的默认列表分隔符更改为 ¬ (alt+170)。

如果我使用 excel 打开一个 xlsx,然后另存为 csv,程序就可以了。但是,如果我将 xlsx 或 csv 读入pandas,然后调用(下面的代码),它会创建一个文件,其中包含两个字符来代替 ¬。

dataframe.to_csv(filepath, sep = '¬', index = False)

以 ¬ 分隔打开这些文件不起作用并在记事本中编辑它们会显示扩展的 ascii 字符 182,如下所示:
https ://theasciicode.com.ar/extended-ascii-code/letter-a-circumflex-accent-ascii -code-182.html

我怎样才能让它正确使用保存扩展的 ascii pandas

标签: pythonpandasascii

解决方案


使用 python unicode 字符来解决这个问题

import pandas as pd 
df = pd.DataFrame({'column_1':['a','a','a','a','a','a','b','b','b','b','b','b','b','b','b','c','c','d','d']
                   ,'column_2':[1,1,1,2,2,2,1,1,1,2,2,2,3,3,3,1,2,2,3]
                  })

df.to_csv('test.csv', sep = u'\xac', index = False)

现在这里 u'\xac' 是逻辑非运算符的 unicode

再读一遍

df2 = pd.read_csv('test.csv', sep = u'\xac')

这应该可以解决您的问题,因为您有一个可以使用所需字符读取和写入的数据帧,这全部采用 UTF-8 编码。如果您想使用其他编码,则取决于您。

顺便说一句,这是我获得编码映射的地方https://www.fileformat.info/info/unicode/char/00ac/index.htm


推荐阅读