首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫错误-为什么我的对象是混合类型的?

熊猫错误-为什么我的对象是混合类型的?
EN

Stack Overflow用户
提问于 2018-07-22 21:06:51
回答 1查看 1.3K关注 0票数 1

我试图将数据帧存储到hdf5文件中,但是当我输入命令时

代码语言:javascript
复制
 subInfo.to_hdf('storage.h5', 'd1', mode = 'a', append = True, format = 
 'table')

我得到了错误消息:

代码语言:javascript
复制
Cannot serialize the column [pairs] because its data contents are [mixed] 
object dtype

作为参考,在我所使用的数据框架中,列'pairs'只包含长度2元组。我该如何解决这个问题?

样本数据:

代码语言:javascript
复制
            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]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-22 21:23:59

如果这不是一个问题,您可以简单地将熊猫的数据类型转换为一个字符串,它将根据需要存储。

另外,如果数据为int和float,则可以使用相同的代码将数据转换为相同类型的数据类型。

代码语言:javascript
复制
subInfo.astype(str).to_hdf('storage.h5', 'd1', mode = 'a', append = True, format = 'table') 

可以使用以下代码将列r1中的列表拆分为不同的列:

代码语言:javascript
复制
subInfo[["new1","new2","new3"]]=pd.DataFrame(subInfo.r1.values.tolist(),index=subInfo.index)

必须记住,列的数量应该等于列表中的元素或元组

类似地,您可以将第一列中名为对的元组拆分为两个不同的列,并具有类似的代码:

代码语言:javascript
复制
subInfo[["new4","new5"]]=pd.DataFrame(subInfo.pairs.values.tolist(),index=subInfo.index)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51469249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档