【发布时间】:2019-04-18 09:06:50
【问题描述】:
问题:我正在尝试在 python 中使用 Pandas 数据框存储大数据集。我的问题是,当我尝试将其保存到 csv 时,我的数据块被截断,如下所示:
e+12
和
[value1 value2 value3 。 . . value1853 value1854]
解释: 我需要将大量数据存储到单个单元格中,并且我需要存储的一些值是长(时间)值,我创建了一个简短的脚本来显示我得到的错误:
dframe = pd.DataFrame()
arr = np.array([])
for x in range(1234567891230,1234567892230):
arr = np.append(arr,x)
dframe['elements'] = [arr]
print(dframe['elements'][0][999]) # prints correct values, eg. 1234567892229.0
dframe.to_csv('temp.csv', index=False)
在上面的示例中,前 1000 个值(1234567891230 到 1234567892230)的存储值如下所示
1.23456789e+12
这完全忽略了四个最不重要的字符。如果将列表扩展到 1001 个值,则会截断更多:
dframe = pd.DataFrame()
arr = np.array([])
for x in range(1234567891230,1234567892231):
arr = np.append(arr,x)
dframe['elements'] = [arr]
print(dframe['elements'][0][999]) # still prints correct values, eg. 1234567892229.0
dframe.to_csv('temp.csv', index=False)
完整的 csv 文件最终看起来像这样:
元素
"[1.23456789e+12 1.23456789e+12 1.23456789e+12 ... 1.23456789e+12 1.23456789e+12 1.23456789e+12]"
删除了几乎所有的 1000 个元素并用 ... 替换它们。
有谁知道这些问题的任何解决方法或如何解决这些问题?
这不是单纯为了显示而截断的问题(例如Pandas to_html() truncates string contents),而是实际上破坏了存储到csv的数据。
【问题讨论】: