在jupyter笔记本中,我有一个从不同的合并数据集创建的数据帧。在
record_id | song_id | user_id | number_times_listened
0 |ABC | Shjkn4987 | 3
1 |ABC | Dsfds2347 | 15
2 |ABC | Fkjhh9849 | 7
3 |XYZ | Shjkn4987 | 20
4 |XXX | Shjkn4987 | 5
5 |XXX | Swjdh0980 | 1
我想创建一个pivot table dataframe by song_id,列出用户的数量和听的次数的总和。在
我知道我需要用count和sum函数创建一个for循环,但是我不能使它工作。我也试过熊猫舱的pd.pivot_表. 在
^{pr2}$或者像这样?在
total_user=[]
total_times_listened =[]
for x in data:
total_user.append(sum('user_id'))
total_times_listened.append(count('number_times_listened'))
return df('song_id','total_user','total_times_listened')
可以将列名字典作为键传递,将函数列表作为值传递:
然后只需在列
^{pr2}$song_id
上使用df.groupby
:输出:
不确定这是否相关,但是示例中的列名和大小写与Python代码不匹配。在
在任何情况下,在Python 2.7上,我可以使用以下方法:
CSV文件:
Python代码:
^{pr2}$生成的透视表如下所示:
这就是你要找的吗?请记住,
song_id
,user_id
对在数据集中是唯一的,因此在这个特定的示例中,聚合函数实际上并不执行任何操作,因为在这两个列上没有任何分组依据。在相关问题 更多 >
编程相关推荐