我想使用groupby并通过打印一个字典列表来聚合结果,其中一列作为键,另一列作为值
我的数据如下:
df = pd.DataFrame([
{'channel': 'one', 'hour': 6, 'rating':7.2},
{'channel': 'one', 'hour': 7, 'rating':8.2},
{'channel': 'one', 'hour': 8, 'rating':4.2},
{'channel': 'two', 'hour': 6, 'rating':10.2},
{'channel': 'two', 'hour': 7, 'rating':1.2},
{'channel': 'two', 'hour': 8, 'rating':3.2},
])
我尝试以下方法
df.groupby('channel').agg({'hour':list, 'rating':list}).reset_index()
我可以得到一份物品清单
channel hour rating
0 one [6, 7, 8] [7.2, 8.2, 4.2]
1 two [6, 7, 8] [10.2, 1.2, 3.2]
我的目的是获得以下信息: 频道小时分级(按小时)
0 one {6:7.2, 7:8.2, 8:4.2}
1 two {6:10.2, 7:1.2, 8:3.2}
我尝试以下方法:
df.groupby('channel').agg({'rating_by_hour':{df['hour']:df['rating']}}).reset_index()
当然,我会得到一个错误,说明“series”对象是可变的
还有一个:
这里有一个方法
相关问题 更多 >
编程相关推荐