gpt4 book ai didi

python - Pandas Dataframes.to_csv 截断长值

转载 作者:行者123 更新时间:2023-12-04 01:50:37 24 4
gpt4 key购买 nike

问题: 我正在尝试在 python 中使用 Pandas 数据帧存储大数据集。我的问题是,当我尝试将其保存到 csv 时,我的数据块被截断,如下所示:

e+12

and

[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 个值的存储值如下所示 (123456789 1230 到 123456789 2230 _0x1045)6

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 文件最终如下所示:

elements

"[1.23456789e+12 1.23456789e+12 1.23456789e+12 ... 1.23456789e+121.23456789e+12 1.23456789e+12]"


它删除了几乎所有 1000 个元素,并用 ... 替换它们。
有谁知道这些问题的任何解决方法或如何解决它们?
这不是仅仅为了显示(例如 Pandas to_html() truncates string contents )而截断的问题,而是实际上破坏了存储到 csv 的数据。

最佳答案

正如@Jacob Tomlinson 所说,更改数据类型解决了一个问题,查看 numpys array2string 解决了另一个问题。

添加 np.set_printoptions(threshold=np.nan) 会阻止 to_csv 截断输出字符串。

dframe = pd.DataFrame()
arr = np.array([])
for x in range(1234567891230,1234567892230):
arr = np.append(arr,x)
dframe['elements'] = [arr.astype('uint64')]
print(dframe['elements'][0][999]) # prints correct values, eg. 1234567892229.0

np.set_printoptions(threshold=np.nan)
dframe.to_csv('temp.csv', index=False)

关于python - Pandas Dataframes.to_csv 截断长值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53316471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com