【发布时间】:2018-02-03 14:14:45
【问题描述】:
我有一个如下所示的数据框
user item \
0 b80344d063b5ccb3212f76538f3d9e43d87dca9e The Cove - Jack Johnson
1 b80344d063b5ccb3212f76538f3d9e43d87dca9e Entre Dos Aguas - Paco De Lucia
2 b80344d063b5ccb3212f76538f3d9e43d87dca9e Stronger - Kanye West
3 b80344d063b5ccb3212f76538f3d9e43d87dca9e Constellations - Jack Johnson
4 b80344d063b5ccb3212f76538f3d9e43d87dca9e Learn To Fly - Foo Fighters
rating
0 1
1 2
2 1
3 1
4 1
并想实现如下结构:
dict-> list of tuples
user-> (item, rating)
b80344d063b5ccb3212f76538f3d9e43d87dca9e -> list((The Cove - Jack
Johnson, 1), ... , )
我能做到:
item_set = dict((user, set(items)) for user, items in \
data.groupby('user')['item'])
但这只会让我半途而废。如何从 groupby 中获取相应的“评分”值?
【问题讨论】:
标签: python pandas dictionary dataframe tuples