根据https://stackoverflow.com/a/46206376/11578009,我正在尝试附加HDFStore文件 import pandas as pd
hdfStore = pd.HDFStore('dataframe.h5')
#df=
#a b c d f
#0 125 -6.450 ... 0 2020-04-#16T02:30:00
#2 124
有些类似于此的问题,但它们都没有处理我的数据在HDFStore中的情况。
我需要将时间戳/键/值项的列表转换为dataframes,并将其存储为多个在时间戳上索引的dataframes,然后将其保存在HDFStore中。
示例代码:
from pandas import HDFStore
from pandas import DataFrame
store = HDFStore('xxx', driver="H5FD_CORE")
for i, k, v in ((0, 'x', 5), (1, 'y', 6)):
if
我正在努力使用pandas中的hdfstore来处理正在进行的迭代过程中的数据帧。在每次迭代中,我都会追加到hdfstore中的一个表中。下面是一个玩具示例:
import pandas as pd
from pandas import HDFStore
import numpy as np
from random import choice
from string import ascii_letters
alphanum=np.array(list(ascii_letters)+range(0,9))
def hdfstore_append(storefile,key,df,format=
使用pandas HDFStore存储空DataFrames会消耗大量磁盘空间。下面是一个例子:
import pandas as pd
for i in range(1000):
with pd.HDFStore('/tmp/test_empty.hdf') as s:
key = 'E{:03d}'.format(i)
s[key] = pd.DataFrame()
for i in range(1000):
with pd.HDFStore('/tmp/test_nan.hdf') as
据我所知,HDFStore.select是用于从大型数据集中进行选择的工具。然而,当试图使用chunksize和iterator=True循环块时,一旦底层数据集足够大,迭代器本身就会变成一个非常大的对象,我不明白为什么迭代器对象很大,它包含什么样的信息,必须变得如此大。
我有一个非常大的HDFStore结构(70亿行,磁盘上有420 GB ),我想用块来迭代:
iterator = HDFStore.select('df', iterator=True, chunksize=chunksize)
for i, chunk in enumerate(iterator):
好的,我正在实验熊猫加载一个包含40 million+行和150+列的30 in csv文件到HDFStore。大多数列是字符串,后面跟着数字和日期。
我以前从未真正使用过numpy、熊猫或pytables,但在R中玩过数据帧。
我目前只是将大约20000行的样例文件存储到HDFStore中。当我尝试从HDFStore读取表时,表被加载到内存中,内存使用量增加了~100 by
f=HDFStore('myfile.h5')
g=f['df']
然后删除包含DataFrame的变量:
del g
此时,内存使用量减少了大约5MB。
如果我再次使用g=f['
一段时间以来,我一直试图将熊猫的数据保存到一个HDF5文件中。我尝试了各种不同的术语。df.to_hdf等,但没有用。我是在python虚拟环境中运行这个的,请参阅。即使没有使用VE,它也有同样的错误。下面的脚本出现了以下错误:
''' This script reads in a pickles dictionary converts it to panda
dataframe and then saves it to an hdf file. The arguments are the
file names of the pickle files.
'&
我已经通过pandas和pandas.HDFStore()将大约800 GB的巨大数据帧存储到HDF5中。
import pandas as pd
store = pd.HDFStore('store.h5')
df = pd.Dataframe() # imagine the data being munged into a dataframe
store['df'] = df
我想用Impala来询问这个问题。有没有一种简单的方法可以将这些数据解析到Parquet中?或者Impala允许您直接使用HDF5?对于HDF5上的数据,还有其他选择吗?
我有一只熊猫HDFStore,我正试着从中挑选。我想在一个大的np.array中有一个id的两个时间戳之间选择数据。下面的代码可以工作,但是只有在查询列表中的成员时才占用太多的内存。如果使用datetimeindex和范围,内存占用将减少95%。
#start_ts, end_ts are timestamps
#instruments is an array of python objects
not_memory_efficient = adj_data.select("US", [Term("date",">=", start_ts
是否可以使用Pytable(或Pandas)来检测hdf文件的表是否包含特定的列?要加载hdf文件,我使用:
from pandas.io.pytables import HDFStore
# this doesn't read the full file which is good
hdf_store = HDFStore('data.h5', mode='r')
# returns a "Group" object, not sure if this could be used...
hdf_store.get_node('t
我正在使用Pandas,并创建了一个HDFStore对象。我计算了500列数据,并将其写入一个表格式的HDFStore对象。然后我关闭文件,从内存中删除数据,执行下500列(用一个递增的整数标记),打开存储,并尝试附加新列。然而,它并不像这样。它给了我一个错误
invalid combinate of [non_index_axes] on appending data [[(1, [500, 501, 502, ...])]] vs current table [[(1, [0, 1, 2, ...])]]
我假设它只允许追加更多的行,而不是列。那么如何添加更多的列呢?
我有这样一个算法,用于csv文件对象。
#diplay_id, ad_id, clicked(1 or 0)
colls = {'display_id':np.int32,
'ad_id':np.int32,
'clicked':bool}
trainData = pd.read_csv("trainData.csv")
for did, ad, c in trainData.itertuples():
print did + ad + c #example
但是,现在我有了一个
如果是使用简单索引的DataFrame,则可以从HDFStore检索索引如下:
df = pd.DataFrame(np.random.randn(2, 3), index=list('yz'), columns=list('abc'))
df
>>> a b c
>>> y -0.181063 1.919440 1.550992
>>> z -0.701797 1.917156 0.645707
with pd.HDFStore(
我将我的数据存储在hdf5文件中。奇怪的是,我选择了一个条件相同的表,但HDFStore给出了不同的答案。
谁能告诉我为什么?
In [2]: import pandas as pd
In [3]: store=pd.HDFStore("./data/m2016.h5","r")
In [4]: store
Out[4]:
<class 'pandas.io.pytables.HDFStore'>
File path: ./data/m2016.h5
/m2016 frame_table (typ->a
作为一个测试,我尝试使用pandas.HDFStore读取一个小的25毫克csv文件:
store = pd.HDFStore('file.h5',mode='w')
for chunk in read_csv('file.csv',chunksize=50000):
store.append('df',chunk)
store.close()
它使我的电脑颠簸,当它最终完成时,file.h5是6.7G。我不知道是什么导致文件大小膨胀的:当我事后查看商店时,里面唯一的东西就是小数据。如果我在没有分块的情况下阅读csv,然
我需要从HDF5数据库中对特定时间内的时间序列数据进行大量连续查询(数据以秒计,并不总是“连续的”,我只知道开始和结束时间)。因此,我想知道是否有比我的当前代码更快的解决方案,它是受启发的。
import pandas as pd
from pandas import HDFStore
store = HDFStore(pathToStore)
dates = pd.date_range(start=start_date,end=end_date, freq='S')
index = store.select_column('XAU','index
我使用下面使用NaN /pandas的代码将包含大量HDFStore值的大型数据集存储在HDFStore中
with get_store(work_path+'/stores/store.h5') as store:
for chunk in reader:
for column in column_list:
store.append('%s' % column, chunk[column],
data_columns=column
我想在一个HDFStore中存储多个对象,但是我想通过分组来组织它。与…有关的东西:
import pandas as pd
my_store = pd.HDFStore('my_local_store.h5')
my_store._handle.createGroup('/', 'data_source_1') # this works, but I'm not sure what it does
my_store['/data_source_1']['part-1'] = pd.DataFrame({&