-1
我有一個包含有關企業信息的數據框。每一行都是一項業務。列F有業務的id,列Z有一個整數告訴我收入。 A列有年份。我只希望每個企業都能在數據框架中增加收入。如何做到這一點?爲不同年份添加值
我可以爲每一個做這件事的商家寫一個循環,但我確信熊貓的方式很簡單。
我曾嘗試將列F設置爲索引df1 = df1.set_index('F')
。我現在可以按年選擇並將它們加在一起?
我有一個包含有關企業信息的數據框。每一行都是一項業務。列F有業務的id,列Z有一個整數告訴我收入。 A列有年份。我只希望每個企業都能在數據框架中增加收入。如何做到這一點?爲不同年份添加值
我可以爲每一個做這件事的商家寫一個循環,但我確信熊貓的方式很簡單。
我曾嘗試將列F設置爲索引df1 = df1.set_index('F')
。我現在可以按年選擇並將它們加在一起?
您正在尋找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
。
你想要所有年份的總金額還是累計金額? – EdChum
@EdChum我其實只有三年,所以我希望每一項業務在這三年的收入總和。 – felix
我想帝斯曼已經爲你提供了這個答案 – EdChum