У меня есть следующие данные.
- песни
- play_event
В песнях данные следующие:
song_id total_plays
1 2000
2 4532
3 9999
4 2343
А в случае воспроизведения данные выглядят следующим образом:
user_id song_id
102 1
103 4
102 1
102 3
104 2
102 1
При каждом воспроизведении песни появляется новая запись, даже если песня воспроизводится снова.
С этими данными я хочу:
Получить всего нет.времени каждый пользователь играл каждую песню.Например, если воспроизводится user_id 102
, song_id 1
три раза, как указано выше.Я хочу, чтобы он был сгруппирован по user_id с общим количеством.Примерно так:
user_id song_id count
102 1 3
102 3 1
103 4 1
104 2 1
Я думаю об использовании Панд для этого.Но я хочу знать, является ли панда правильным выбором.
Если это не панды, то каким должен быть мой путь вперед.
Если Pandas - правильный выбор, то:
Приведенный ниже код позволяет мне получить счет, сгруппированный по пользователю или сгруппированный по user_id, как мы можем получить счетсгруппированы по user_id & song_id?Смотрите пример кода, который я попробовал ниже:
import pandas as pd
#Load data from csv file
data = pd.DataFrame.from_csv('play_events.csv')
# Gives how many entries per user
data['user_id'].value_counts()
# Gives how many entries per songs
data['song_id'].value_counts()