Как преобразовать дискретные данные в интервал в Python? - PullRequest
0 голосов
/ 18 марта 2019

У меня есть входные данные ниже. И я хотел бы преобразовать эти данные в выходные данные. Я использую язык Python и NumPy и панд. Пожалуйста, помогите мне решить.

Входные данные:

        Product                 year    Total sale
    0   Aviation Turbine Fuel   2000    63131
    1   Aviation Turbine Fuel   2001    47453
    2   Aviation Turbine Fuel   2002    52839
    3   Aviation Turbine Fuel   2003    64041
    4   Aviation Turbine Fuel   2004    66825
    5   Aviation Turbine Fuel   2005    64335
    6   Aviation Turbine Fuel   2006    63778
    7   Aviation Turbine Fuel   2007    68938
    8   Aviation Turbine Fuel   2008    68935
    9   Aviation Turbine Fuel   2009    82631
    10  Aviation Turbine Fuel   2010    101314
    11  Aviation Turbine Fuel   2011    109808
    12  Aviation Turbine Fuel   2012    115786
    13  Aviation Turbine Fuel   2013    123527
    14  Aviation Turbine Fuel   2014    139404

Это вывод, который я хотел напечатать.

Выход:

Product                 Year        Avg
Aviation Turbine Fuel   2010-2014   117967.8
Aviation Turbine Fuel   2005-2009   69723.4
Aviation Turbine Fuel   2000-2004   58857.8

1 Ответ

4 голосов
/ 18 марта 2019

Попробуйте с pd.cut() и df.groupby()

bins=[1999,2004,2009,2014]
labels=['2000-2004','2005-2009','2010-2014']
df['Year']=pd.cut(df.year,bins,labels=labels)
print(df.groupby('Year',as_index=False).agg({'Product':'first','Total sale':'mean'}))

Выход:

        Year                Product  Total sale
0  2000-2004  Aviation Turbine Fuel     58857.8
1  2005-2009  Aviation Turbine Fuel     69723.4
2  2010-2014  Aviation Turbine Fuel    117967.8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...