вывести топ 3 месяца в каждом году

MarinaMur

Новичок
Пользователь
Авг 4, 2020
9
0
1
Добрый день.
у меня есть таблица с годами месяцами и значениями в этих месяцах.
помогите найти 3 максимальных месяца в каждом году.
интуитивно понимаю что надо применять функцию nlargest, но как это сделать в каждом году

PythonВыделить код
1
2
3
4
5
6
7
8
9
10
11
url='https://drive.google.com/file/d/1nvi3GFkmZDXSbLrTe_ZmyNAjZGQ74A4D/view?usp=sharing'

url2='https://drive.google.com/uc?id=' + url.split('/')[-2]
df1 = pd.read_csv(url2, delimiter=',')
df1.dataframeName = 'International_Report_Passengers.csv'
nRow, nCol = df1.shape
print(f'There are {nRow} rows and {nCol} columns')

title = df1.pivot_table(index = ('Year','Месяц'), values = 'Total', aggfunc = 'sum', fill_value = 0)
title = title .reset_index()
title
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
помогите найти 3 максимальных месяца в каждом году.
интуитивно понимаю что надо применять функцию nlargest, но как это сделать в каждом году
Вот так можно:
Python:
import pandas as pd


url = "https://drive.google.com/file/d/1nvi3GFkmZDXSbLrTe_ZmyNAjZGQ74A4D/view?usp=sharing"
url2 = "https://drive.google.com/uc?id=" + url.split("/")[-2]

df1 = pd.read_csv(url2, delimiter=",")
df1.dataframeName = "International_Report_Passengers.csv"
nRow, nCol = df1.shape
print(f"There are {nRow} rows and {nCol} columns")

title = df1.pivot_table(index=("Year", "Month"), values="Total",  aggfunc="sum", fill_value=0)
title = title.groupby(level='Year')['Total'].nlargest(3).reset_index(level=0, drop=True).reset_index()
print(title)
 

MarinaMur

Новичок
Пользователь
Авг 4, 2020
9
0
1
спасибо огромное
как раз только что до этого тоже дошла :)
 

Форум IT Специалистов