- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Python新手在这里。
我正在尝试使用 to_hdf 将大数据帧保存到带有 lz4 压缩的 HDF 文件中。
我使用 Windows 10、Python 3、Pandas 20.2
我收到错误“溢出错误:Python int 太大而无法转换为 C long”。
没有任何机器资源接近其极限(RAM、CPU、SWAP 使用)
以前的帖子讨论了 dtype,但下面的例子表明还有一些其他问题,可能与大小有关?
import numpy as np
import pandas as pd
# sample dataframe to be saved, pardon my French
n=500*1000*1000
df= pd.DataFrame({'col1':[999999999999999999]*n,
'col2':['aaaaaaaaaaaaaaaaa']*n,
'col3':[999999999999999999]*n,
'col4':['aaaaaaaaaaaaaaaaa']*n,
'col5':[999999999999999999]*n,
'col6':['aaaaaaaaaaaaaaaaa']*n})
# works fine
lim=200*1000*1000
df[:lim].to_hdf('df.h5','table', complib= 'blosc:lz4', mode='w')
# works fine
lim=300*1000*1000
df[:lim].to_hdf('df.h5','table', complib= 'blosc:lz4', mode='w')
# Error
lim=400*1000*1000
df[:lim].to_hdf('df.h5','table', complib= 'blosc:lz4', mode='w')
....
OverflowError: Python int too large to convert to C long
最佳答案
我遇到了同样的问题,它似乎确实与数据框的大小有关,而不是与 dtype 相关(我将所有列都存储为字符串,并且能够将它们分别存储到 .h5)。
对我有用的解决方案是使用 mode='a'
以块的形式保存数据帧.
正如 pandas documentation 中所建议的:模式{‘a’,‘w’,‘r+’},默认‘a’: ‘a’:追加,打开现有文件进行读写,如果文件不存在则创建。
所以示例代码看起来像:
batch_size = 1000
for i, df_chunk in df.groupby(np.arange(df.shape[0]) // batch_size):
df_chunk.to_hdf('df.h5','table', complib= 'blosc:lz4', mode='a')
关于python - Pandas to_hdf 溢出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45155782/
Python新手在这里。 我正在尝试使用 to_hdf 将大数据帧保存到带有 lz4 压缩的 HDF 文件中。 我使用 Windows 10、Python 3、Pandas 20.2 我收到错误“溢出
这似乎是 OS X 10.10 和 docker 特定的错误。当我尝试 import pandas as pd df = pd.DataFrame([[1,2,3], [2,3,4]], column
DataFrame.to_hdf(path_or_buf, key, **kwargs) pandas官方文档中说key是store中组的标识。 但是,这是什么意思?尽管如此,我还是找不到足够的例子。
我需要将一个大数据帧保存到 hdf5 文件,所以我使用了: self.feature_concated.to_hdf(self.h5_result_name, key='feature_data',
我正在尝试使用 hdf5 格式将数据帧保存到磁盘。即使是这段简单的代码也会给我“段错误(核心已转储)” import pandas as pd import tables df=pd.DataFram
以下代码给我错误。 import pandas as pd df = pd.DataFrame({'a' : [1,2,3]}) df.to_hdf('temp.h5', key='df', mode
我有一个大约 13,000 行 × 5 列的 HDF5,随着时间的推移,这些行通过 DF.to_hdf(Filename, 'df',append=True, format='table') 这是大小
我有一个 2Gb 的数据帧,一次写入,多次读取 df。我想在 pandas 中使用 df,因此我使用了固定格式的 df.read_hdf 和 df.to_hdf,在读写方面效果很好。 但是,df随着列
我想将数据存储在 HDFS 文件中,但将新数据附加到该文件会使索引重复。我可以知道如何避免吗? In [35]: hdf = pd.HDFStore('temp.h5') In [36]: hdf.i
我想存储一个 pandas DataFrame,这样当我稍后再次加载它时,我只加载它的某些列而不是整个东西。因此,我试图以 hdf 格式存储 pandas DataFrame。 DataFrame 包
假设我有两个数据框, import pandas as pd df1 = pd.DataFrame({'col1':[0,2,3,2],'col2':[1,0,0,1]}) df2 = pd.Data
我想将数据帧 df 保存到 .h5 文件 MainDataFile.h5 : df.to_hdf ("c:/Temp/MainDataFile.h5", "MainData", mode = "w",
我是一名优秀的程序员,十分优秀!