Python 熊猫无法将csv正确转换为hdf5?

Python 熊猫无法将csv正确转换为hdf5?,python,pandas,csv,hdf5,Python,Pandas,Csv,Hdf5,我正在处理大型csv文件,并试图将其转换为hdf5格式。当我尝试使用HDFviewer查看输出时,我得到的是一个奇怪的分段输出,它由多个数据集组成,而不是我看到的一个与其他人的hdf5文件紧密相连的数据集。当我尝试打开block2值时,它将使我尝试打开它的应用程序崩溃。附件是hdfviewer打开我用pandas生成的hdf5文件的照片 具有int、string(object)和float类型的标题(col1、col2、col3)的数据集示例: +------+------+-------+-

我正在处理大型csv文件,并试图将其转换为hdf5格式。当我尝试使用HDFviewer查看输出时,我得到的是一个奇怪的分段输出,它由多个数据集组成,而不是我看到的一个与其他人的hdf5文件紧密相连的数据集。当我尝试打开block2值时,它将使我尝试打开它的应用程序崩溃。附件是hdfviewer打开我用pandas生成的hdf5文件的照片

具有int、string(object)和float类型的标题(col1、col2、col3)的数据集示例:

+------+------+-------+-----+
| Col1 | Col2 | Col3  | ... |
+------+------+-------+-----+
|    1 | 0x00 | 100.1 | ... |
|    2 | 0x00 | 100.3 | ... |
|    3 | 0x00 | 132.3 | ... |
+------+------+-------+-----+
代码csv->hdf5的示例:

df = pd.DataFrame()
df = pd.read_csv(csv_file)
df.to_hdf('example.h5', '/data', complib='zlib', complevel=9)
这是怎么回事

编辑:为了澄清,我可以使用pd.read_hdf()在python中很好地打开生成的.h5文件……但是像JMP和hdfview这样的应用程序显示我附加的图像,无法正确打开它,甚至崩溃

编辑:好的,我知道Pandas为什么会将我的数据集拆分为三个数据集:因为对相同类型的数据集进行分组更有效,因此block0是int、block1和block2类型的数据集。然而,当我试图打开block2时,它将冻结hdfviewer。block2甚至不会出现在JMP上

编辑:好的,我想我找到了导致字符串块断裂的原因,但我不知道如何修复它

以下是一个示例数据集:

+------+-------+-------+
|      | Col1  | Col2  |
+------+-------+-------+
|    0 | hello | the     | 
|    2 | world | computer| 
|    3 | lol   | is      | 
+------+------+----------+
以下是转换为hdf5时的输出:

(128, 4, 149, 185, 0, 0, 0, 0, 0, 0, 0, 140, 21, 110, 117, 109, 112, 121, 46, 99, 111, 114, 101, 46, 109, 117, 108, 116, 105, 97, 114, 114, 97, 121, 148, 140, 12, 95, 114, 101, 99, 111, 110, 115, 116, 114, 117, 99, 116, 148, 147, 148, 140, 5, 110, 117, 109, 112, 121, 148, 140, 7, 110, 100, 97, 114, 114, 97, 121, 148, 147, 148, 75, 0, 133, 148, 67, 1, 98, 148, 135, 148, 82, 148, 40, 75, 1, 75, 3, 75, 2, 134, 148, 104, 3, 140, 5, 100, 116, 121, 112, 101, 148, 147, 148, 140, 2, 79, 52, 148, 75, 0, 75, 1, 135, 148, 82, 148, 40, 75, 3, 140, 1, 124, 148, 78, 78, 78, 74, 255, 255, 255, 255, 74, 255, 255, 255, 255, 75, 63, 116, 148, 98, 136, 93, 148, 40, 140, 5, 104, 101, 108, 108, 111, 148, 140, 3, 116, 104, 101, 148, 140, 5, 119, 111, 114, 108, 100, 148, 140, 8, 99, 111, 109, 112, 117, 116, 101, 114, 148, 140, 3, 108, 111, 108, 148, 140, 2, 105, 115, 148, 101, 116, 148, 98, 46)
现在运行ascii->文本转换器,它显示:

¹numpy.core.multiarray_reconstructnumpyndarrayKCbR(KKKhdtypeO4KKR(K|NNNJÿÿÿÿJÿÿÿÿK?tb](hellotheworldcomputerlolisetb
因此,它正在将实际的python代码写入hdf5文件并破坏一切。这是熊猫的一个错误吗?

见问题# .to_hdf5()函数支持内部使用。将尝试附加到表并报告发生的情况。

请参阅问题#
.to_hdf5()函数支持内部使用。将尝试附加到表并报告发生的情况。

尝试先修复错误并告诉我们您尝试了什么。如果原始帖子不清楚,很抱歉,我的问题是使用hdfview检查.h5输出时非常奇怪,我无法打开它用其他软件生成的第二个值块。但是,它可以使用pandas read_hdf()函数完美地读回。好的,你能检查我的最新编辑吗?我发现字符串数据集的输出是以ASCII格式输出的,任何软件都无法读取,因为它是python代码。请尝试先修复错误并告诉我们您尝试了什么。如果原始帖子不清楚,很抱歉,我的问题是,当使用hdfview检查.h5输出时,它真的很奇怪,我无法打开它用其他软件生成的第二个值块。但是,它可以使用pandas read_hdf()函数完美地读回。好的,你能检查我的最新编辑吗?我发现字符串数据集的输出是以ASCII格式输出的,任何软件都无法读取,因为它是python代码。