This question与我的非常相似,但在我的例子中,我希望将每个示例作为数据帧的一行引入
由此:
sample={'user1': {'item11': 2.5, 'item12': 3.5, 'item13': 3.0},
'user2': {'item21': 2.5},
'user3': {'item31':4.5,'item32':1.0}}
我怎么能得到这个
user1 user2 user3
item11 item12 item13 item21 item31 item32
0 2.5 3.5 3.0 2.5 4.5 1.0
然后,当得到像这样的新样本时:
sample1={'user1': {'item11': 4.5, 'item12': 5.5, 'item13': 1.0},
'user2': {'item21': 4.5},
'user3': {'item31':5.5,'item32':3.0}}
如何引入它来获得:
user1 user2 user3
item11 item12 item13 item21 item31 item32
0 2.5 3.5 3.0 2.5 4.5 1.0
1 4.5 5.5 1.0 4.5 5.5 3.0
请注意,每个示例始终具有相同的用户,并且每个用户始终具有相同的项。例如,user3总是有item31和item32
谢谢
您可以通过
pd.concat
+DataFrame.from_dict()
和最后的转置来获得它:或者
^{} +^{}
您可以将嵌套字典提供给
pd.DataFrame
构造函数stack
,交换索引级别,转换为数据帧,最后进行转置然后要从新字典
sample1
附加数据:如果逐行附加到dataframe本身并不是一个要求,我强烈建议您在收集输入数据之后,重新构造逻辑,以便在一次调用中构造dataframe。docs包含一个与^{} 相关的示例
使用^{} 和示例列表的嵌套dict理解可以获得更好的性能:
如果不可能,则分别创建每个数据帧,然后^{} :
相关问题 更多 >
编程相关推荐