Фильтрация значений в столбцах сводной таблицы - PullRequest
0 голосов
/ 13 октября 2018

Если я хочу агрегировать значения / суммировать столбец за определенный период времени, как мне это сделать с помощью сводной таблицы?Например, в приведенной ниже таблице, если бы я хотел получить общую сумму плодов за период с 2000 по 2001 год и с 2002 по 2004 год, какой код я бы написал?В настоящее время у меня есть это до сих пор:

import pandas as pd
import numpy as np


UG = pd.read_csv('fruitslist.csv', index_col=2)
UG = UG.pivot_table(values = 'Count', index = 'Fruits', columns = 'Year', aggfunc=np.sum)
UG.to_csv('fruits.csv')

Это возвращает счетчики для каждого плода по каждому отдельному году, но я не могу агрегировать по десятилетиям (например, 90-е, 00-е, 2010-е)

Fruits    Count   Year

Apple     4       1995

Orange    5       1996

Orange    6       2001

Guava     8       2003

Banana    6       2010

Guava     8       2011

Peach     7       2012

Guava     9       2013

Заранее спасибо!

1 Ответ

0 голосов
/ 15 октября 2018

Это может помочь.Преобразуйте столбец Year в пределах groupby в десятилетия, а затем агрегируйте.

"""
Fruits    Count   Year

Apple     4       1995

Orange    5       1996

Orange    6       2001

Guava     8       2003

Banana    6       2010

Guava     8       2011

Peach     7       2012

Guava     9       2013
"""

df = pd.read_clipboard()

output = df.groupby([
    df.Year//10*10,
    'Fruits'
]).agg({
    'Count' : 'sum'
})

print(output)

             Count
Year Fruits       
1990 Apple       4
     Orange      5
2000 Guava       8
     Orange      6
2010 Banana      6
     Guava      17
     Peach       7

Редактировать

Если вы хотите сгруппировать годы по разному количеству, скажите каждый2 года, просто измените группу года:

print(df.groupby([
    df.Year//2*2,
    'Fruits'
]).agg({
    'Count' : 'sum'
}))

             Count
Year Fruits       
1994 Apple       4
1996 Orange      5
2000 Orange      6
2002 Guava       8
2010 Banana      6
     Guava       8
2012 Guava       9
     Peach       7
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...