#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()
?