我有一个包含有关商家信息的数据框。每一行都是一项业务。列F具有业务的id,列Z具有一个告诉我收入的整数。 A列有年份。我只想让每个企业在数据框中多年来增加收入。怎么能这样做?
我可以为每个做这件事的公司写一个循环,但我确信大熊猫的方式很简单。
我尝试将列F设置为df1 = df1.set_index('F')
的索引。我现在能以某种方式选择年份并将它们加在一起吗?
答案 0 :(得分: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
。