2014-03-06 79 views
-1

我有一個包含有關企業信息的數據框。每一行都是一項業務。列F有業務的id,列Z有一個整數告訴我收入。 A列有年份。我只希望每個企業都能在數據框架中增加收入。如何做到這一點?爲不同年份添加值

我可以爲每一個做這件事的商家寫一個循環,但我確信熊貓的方式很簡單。

我曾嘗試將列F設置爲索引df1 = df1.set_index('F')。我現在可以按年選擇並將它們加在一起?

+0

你想要所有年份的總金額還是累計金額? – EdChum

+0

@EdChum我其實只有三年,所以我希望每一項業務在這三年的收入總和。 – felix

+0

我想帝斯曼已經爲你提供了這個答案 – EdChum

回答

2

您正在尋找groupby。這在教程here中進行了介紹。例如:

>>> df = pd.DataFrame({"F": ["b1", "b1", "b2", "b3"], "A": [2001,2002,2001,2003], "Z": [100, 200, 50, 200]}) 
>>> df 
     A F Z 
0 2001 b1 100 
1 2002 b1 200 
2 2001 b2 50 
3 2003 b3 200 

[4 rows x 3 columns] 
>>> df.groupby("F")["Z"].sum() 
F 
b1 300 
b2  50 
b3 200 
Name: Z, dtype: int64 

也許

>>> df.groupby("F", as_index=False)["Z"].sum() 
    F Z 
0 b1 300 
1 b2 50 
2 b3 200 

[3 rows x 2 columns] 

取決於你是否希望輸出成爲Series或其他DataFrame