将新列附加到带有Pandas的HDFStore

ewm0tg9j  于 2023-01-04  发布在  HDFS
关注(0)|答案(2)|浏览(290)

我正在使用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, ...])]]

我假设它只允许附加更多的行而不是列。那么我如何添加更多的列呢?

csbfibhn

csbfibhn1#

您将列标题保留在代码[1, 2, 3, ...]中,并尝试将不同的列[500, 501, 502, ...]附加到DataFrame

qvk1mo1f

qvk1mo1f2#

HDF5文件具有固定的结构,您无法轻松添加列,但解决方法是连接不同的DF,然后将它们重新写入HDF5文件。

hdf5_files = ['data1.h5', 'data2.h5', 'data3.h5']

df_list = []
for file in hdf5_files:
    df = pd.read_hdf(file)
    df_list.append(df)

result = pd.concat(df_list)

# You can now use the result DataFrame to access all of the data from the HDF5 files

这能解决你的问题吗?
提醒HDF5不是为高效的附加操作而设计的,如果你需要经常向数据中添加新列,你应该考虑数据库系统。

相关问题