将pandas数据框架写入CSV文件
我在pandas中有一个数据框,我想把它写到CSV文件中。我正在使用这个方法。
df.to_csv('out.csv')
然后得到了错误。
UnicodeEncodeError: 'ascii' codec can't encode character u'\u03b1' in position 20: ordinal not in range(128)
有什么方法可以轻松解决这个问题吗(即我的数据框里有unicode字符)?是否有办法使用例如'to-tab'方法(我认为不存在)写到以制表符分隔的文件而不是CSV?
604
7
要用制表符定界,你可以使用
to_csv
的sep
参数。要使用特定的编码(例如:'utf-8'),可以使用
encoding
参数。当你使用 "to_csv "方法将一个 "DataFrame "对象存储到一个csv文件时,你可能不需要存储 "DataFrame "对象的每个行的**前的索引。
你可以通过给
index
参数传递一个False
布尔值来避免**。有点像
所以,如果你的DataFrame对象是这样的:
。
csv文件将存储。
而不是(当默认值
True
被传递时)如果你在编码时遇到问题,想逐个单元进行编码,你可以尝试以下方法:'utf-8'。
Python 2
(其中"df"是你的DataFrame对象。)
然后试试。
你可以通过以下方式检查列的编码。
警告:errors='ignore'将直接省略该字符,例如。
Python 3
有时候,如果你也指定了UTF-8编码,你会面临这些问题。 我建议你在读文件时指定编码,在写文件时指定相同的编码。 这可能会解决你的问题。
要将pandas DataFrame写入CSV文件,你需要
DataFrame.to_csv
。 这个函数提供了许多合理的默认参数,你经常需要覆盖这些参数以适应你的特定使用情况。 例如,你可能想使用不同的分隔符,改变日期时间的格式,或者在写入时放弃索引。to_csv
有一些参数,你可以通过这些参数来解决这些需求。这里'是一个表格,列出了一些常见的写入CSV文件的情况,以及你可以为它们使用的相应参数。
![写到CSV马老兄][1] 。
脚注。 脚注。
[1]: https://i.stack.imgur.com/RsIO7.png
它可能不是这种情况下的答案,但我有同样的错误信息与.to_csv</i>。 我尝试了.toCSV('name.csv') 和错误信息不同("'SparseDataFrame' 对象没有属性'toCSV'")。 于是,将数据帧转为密集数据帧,问题就解决了。
在Windows上用全路径导出文件的例子,如果你的文件有头文件的话。
例如,如果您想将文件存放在与您的脚本所在的同一目录下的export文件夹中,使用utf-8编码和tab作为分隔符。