无法在Pandas中将CSV写入二进制文件

时间:2016-02-12 00:11:49

标签: python pandas

背景

我有一些我试图拆分的数据帧,然后将各列写成二进制文件作为签名短路。

代码

for i in range(0, len(filesList)):
    df = pd.read_csv(myPath + '/' + filesList[i], sep='\t', header=None)
    dfA = df[1]
    dfA = dfA - np.mean(dfA)
    dfA = 10000*(dfA/(np.max(dfA)-np.min(dfA)))
    dfA = dfA.astype(int)
    dfA.to_csv(path=writeOutDirectoryPath + '/' + filesList[i] + 'LeadA', mode='wb', index=False)

所有这一切都是通过将dfA系列变成整数(完成它们转换成可以作为签名短片可读的格式,我认为;对于这个特定的变换后数据集,我的所有值都在-6000到6000之间。

问题

我希望dfA.to_csv以二进制文件写入文件,因此mode ='wb'。我收到一个错误:

f = open(path, mode, errors='replace') ValueError: binary mode doesn't take an errors argument

我一定是做错了什么,但我不知道是什么。也许to_csv无法写出二进制文件,但我在文档中找不到任何可以指示的内容。除非告诉我我在做错了什么,将DataFrame中的信息转换为可以作为二进制文件的形式的最佳方法是什么?

修改

将文件写出CSV是微不足道的(我已经可以这样做了)。如果有人有将CSV转换为二进制文件的方法,我也完全对此持开放态度。

1 个答案:

答案 0 :(得分:0)

Python 3在尝试从pandas中打开文件时为内置open()函数提供错误,因为二进制文件模式仅支持None作为错误参数。它可能仅适用于大熊猫的“w”模式。

Python 3 open() docs没有解释,但会显示in library code here.

您应该查看here以获取使用python struct package正确编写二进制类型的完整描述。