按照艺人统计每个艺人每天所有歌曲的播放量,输出文件为exp2_3.csv,各个列名为艺人id,日期Ds, 歌曲播放总量。注意:这里只统计歌曲的播放量,不包括下载和收藏的数量。代码
时间: 2024-02-20 21:56:34 浏览: 104
网易云歌曲数据_5730.csv
假设我们已经有了一个包含所有用户行为的数据集,其中包括用户id、日期、行为类型(播放、下载、收藏等)和歌曲id等字段。可以按照以下步骤统计每个艺人每天所有歌曲的播放量,并输出到exp2_3.csv文件中:
```python
import pandas as pd
# 读取数据集,假设数据集文件名为data.csv,包含以下列:用户id、日期、行为类型、歌曲id
df = pd.read_csv('data.csv')
# 筛选出行为类型为播放的记录,并按照用户id、日期、歌曲id进行分组,统计播放次数
df_plays = df[df['行为类型'] == '播放']
df_plays = df_plays.groupby(['用户id', '日期', '歌曲id']).size().reset_index(name='播放次数')
# 读取艺人id与歌曲id的对应关系,假设文件名为artists.csv,包含以下列:艺人id、歌曲id
df_artists = pd.read_csv('artists.csv')
# 将艺人id与歌曲id的对应关系与播放记录合并,得到每个艺人每天所有歌曲的播放次数
df_plays = pd.merge(df_plays, df_artists, on='歌曲id')
df_plays = df_plays.groupby(['艺人id', '日期'])['播放次数'].sum().reset_index()
# 将结果输出到exp2_3.csv文件中
df_plays.to_csv('exp2_3.csv', index=False)
```
注意,这里假设数据集中的日期格式为字符串类型,如果是datetime类型,则需要使用`dt.date`方法将其转换为日期类型。另外,如果数据集非常大,可以考虑使用分布式计算框架如Spark或Dask来加速计算过程。
阅读全文