簡體   English   中英

篩選數據透視表列中的值

[英]Filtering for values in Pivot table columns

如果我想在特定時間段內匯總值/匯總一列,該如何使用數據透視表來實現? 例如,在下表中,如果我想要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

提前致謝!

這可能會有所幫助。 groupbyYear列轉換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年,只需更改Year組即可:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM