【发布时间】:2016-05-23 00:15:30
【问题描述】:
背景
我有一些要拆分的数据帧,然后将各个列作为签名短裤写入二进制文件。
代码
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 转换为二进制文件的方法,我也完全愿意接受。
【问题讨论】:
-
CSV 是纯文本(例如 ASCII)“逗号分隔值”文件...作为二进制文件这样做是没有意义的。
-
我知道 CSV 是什么,但没有明确的 to_text 或 to_binary 并且错误消息很神秘。如果我错过了文档中的某些内容,请随时指出。