Как сгруппировать значения нескольких строк (все float64), где значения столбцов (исполнитель, дорожка и дата) одинаковы?

#python #pandas

#python #pandas

Вопрос:

Моя цель — отобразить фрейм данных, который показывает уникального исполнителя, дорожку и дату с соответствующими столбцами float64 (количество потоков Spotify, количество потоков Apple, загрузки). Что-то вроде этого:

 Artist          Track   Date        Consumption Total Streams   Apple Streams
Billie Eilish   bad guy 3/31/2019   2506        3458105         1449640
Billie Eilish   bad guy 3/31/2019               11233
Billie Eilish   bad guy 3/30/2019   2782        4034374         1629823
Billie Eilish   bad guy 3/30/2019               14567
Billie Eilish   bad guy 3/29/2019   2985        4578589         1772980
Billie Eilish   bad guy 3/29/2019               9673
Billie Eilish   bad guy 3/28/2019   285         1660            1
Billie Eilish   bad guy 3/19/2019               1
  

Однако моя проблема в том, что мне нужен только один экземпляр исполнителя и соответствующий трек на дату. В приведенном выше примере для каждого исполнителя и дорожки > 1 даты. Я подозреваю, что мне нужно найти способ просто добавить значения столбцов, где исполнитель, трек и дата совпадают, но пока не добились успеха.

Я уже пробовал функции groupby, но в результате исключаются столбцы исполнитель и дата и вместо этого мне выдаются все номера потоков для каждой дорожки (которые я использую в качестве уникального идентификатора):

 Track Consumption Total Streams Apple Streams   Spotify Streams
    !!!!!!! 237.0     3644.0    11.0             3633.0 
  

Сводная таблица:

 pivoted_df = pd.pivot_table(df, index="Track", values=["Consumption", "Total Streams", "Apple Streams", "Spotify Streams", "Spotify Premium Streams", "Ad Spotify Streams", "Downloads", "Revenue" ], aggfunc=np.sum)
  

Комментарии:

1. Можете ли вы также добавить пример фрейма данных перед expected output

2. не могли бы вы, пожалуйста, написать, какие функции groupby вы пробовали, а также согласовать входные и выходные столбцы (потоки spotify отсутствуют во входных данных)

3. Здесь будет работать группа by. Я сомневаюсь, что вы правильно сгруппировали. Не могли бы вы показать нам, что вы использовали для этого?

4. похоже, вам нужно df.groupby(['Artist', 'Track']).sum() ?