我试图将数据帧存储到hdf5文件中,但是当我输入命令时
subInfo.to_hdf('storage.h5', 'd1', mode = 'a', append = True, format =
'table')我得到了错误消息:
Cannot serialize the column [pairs] because its data contents are [mixed]
object dtype作为参考,在我所使用的数据框架中,列'pairs'只包含长度2元组。我该如何解决这个问题?
样本数据:
pairs r r1
0 (179, 180) 0.928479 [17.671, 19.8573, 27.1782]
1 (179, 445) 21.189453 [17.671, 19.8573, 27.1782]
2 (179, 1052) 25.448198 [17.671, 19.8573, 27.1782]
3 (179, 1683) 16.970432 [17.671, 19.8573, 27.1782]
4 (179, 1684) 16.927219 [17.671, 19.8573, 27.1782]
5 (179, 1852) 8.293519 [17.671, 19.8573, 27.1782]发布于 2018-07-22 21:23:59
如果这不是一个问题,您可以简单地将熊猫的数据类型转换为一个字符串,它将根据需要存储。
另外,如果数据为int和float,则可以使用相同的代码将数据转换为相同类型的数据类型。
subInfo.astype(str).to_hdf('storage.h5', 'd1', mode = 'a', append = True, format = 'table') 可以使用以下代码将列r1中的列表拆分为不同的列:
subInfo[["new1","new2","new3"]]=pd.DataFrame(subInfo.r1.values.tolist(),index=subInfo.index)必须记住,列的数量应该等于列表中的元素或元组。
类似地,您可以将第一列中名为对的元组拆分为两个不同的列,并具有类似的代码:
subInfo[["new4","new5"]]=pd.DataFrame(subInfo.pairs.values.tolist(),index=subInfo.index)https://stackoverflow.com/questions/51469249
复制相似问题