在同一CSV文件中保存大小不同的多个列/变量

时间:2019-01-24 09:35:51

标签: python pandas csv dataframe hdf5

我大约有100列,每列中都有大量值。我想将它们保存在CSV文件中,以便可以读取文件并在代码中使用这些列中的值。唯一的问题是这些列彼此不相关,并且长度不同,因此从技术上讲它们不是数据框的一部分。

我当时想将它们存储在CSV文件中,然后分别阅读每一列并在我的代码中使用它。由于这些列的长度不同,并且不是数据框的一部分,因此我猜想我必须在使用每列之前过滤掉NaN值。

我想知道是否有一种更简单的方法可以存储(在文件中)并读取这些列。我在想清单或类似的东西。

谢谢。

1 个答案:

答案 0 :(得分:1)

CSV格式不太适合您的任务。

由于您已经具有一系列数据帧,因此建议您考虑使用HDF5将数据帧有效地存储在单个文件中。您可以同时启用压缩功能:

for idx, df in enumerate(list_of_dfs):
    df.to_hdf('data.h5', f'df_{idx}', complib='zlib', complevel=5)

这会将有序标识符附加到每个数据帧,即df_0df_1等。然后,您可以通过pd.read_hdf读取特定的数据帧。例如:

first_df = pd.read_hdf('data.h5', key='df_0')