1. 对歌曲艺人数据mars_tianchi_songs进行处理,统计出艺人的个数以及每个艺人的歌曲数量。输出文件格式为exp2_1.csv,第一列为艺人的ID,第二列为该艺人的歌曲数目。最后一行输出艺人的个数。 2. 将用户行为表和歌曲艺人表以歌曲song_id作为关联,合并为一个大表。各列名称为第一到第五列与用户行为表的列名一致,第六到第十列为歌曲艺人表中的第二列到第六列的列名。输出文件名为exp2_2.csv。 3. 按照艺人统计每个艺人每天所有歌曲的播放量,输出文件为exp2_3.csv,各个列名为艺人id,日期Ds, 歌曲播放总量。注意:这里只统计歌曲的播放量,不包括下载和收藏的数量。 4. 对文件exp2_2.csv进行操作,查找重复数据的数量,并去重,得到新的文件exp2_4.csv。 5. 在去重后的文件exp2_4.csv上统计每位艺人每首歌曲每天的播放量,第一列为艺人id,第二列为歌曲,第三列为日期,第四列为播放量,并分别按照艺人、歌曲、日期排序,保存到exp2_5.csv。
时间: 2023-05-26 09:03:08 浏览: 158
阿里音乐趋势数据 mars_tianchi_artist_plays_predict.csv
1. import pandas as pd
songs = pd.read_csv('mars_tianchi_songs.csv')
artist_count = songs.groupby('artist_id').size().reset_index(name='song_count')
artist_count.to_csv('exp2_1.csv', index=False)
print("艺人数量:", len(artist_count))
2. import pandas as pd
behavior = pd.read_csv('mars_tianchi_user_behavior.csv')
songs = pd.read_csv('mars_tianchi_songs.csv')
merged = pd.merge(behavior, songs, on='song_id')
merged.to_csv('exp2_2.csv', index=False)
3. import pandas as pd
behavior = pd.read_csv('mars_tianchi_user_behavior.csv')
songs = pd.read_csv('mars_tianchi_songs.csv')
merged = pd.merge(behavior, songs, on='song_id')
artist_plays = merged.groupby(['artist_id', 'Ds'])['play_count'].sum().reset_index(name='total_plays')
artist_plays.to_csv('exp2_3.csv', index=False)
4. import pandas as pd
merged = pd.read_csv('exp2_2.csv')
duplicates = merged.duplicated().sum()
print("重复数据数量:", duplicates)
merged.drop_duplicates(inplace=True)
merged.to_csv('exp2_4.csv', index=False)
5. import pandas as pd
merged = pd.read_csv('exp2_4.csv')
artist_song_plays = merged.groupby(['artist_id', 'song_id', 'Ds'])['play_count'].sum().reset_index(name='total_plays')
artist_song_plays.sort_values(['artist_id', 'song_id', 'Ds'], inplace=True)
artist_song_plays.to_csv('exp2_5.csv', index=False)
阅读全文