安装程序
np.random.seed([3, 1415])
teams = ['Madrid', 'Man U']
days = 'mon tue wed thu fri sat sun'.split()
df = pd.DataFrame(dict(
Team=np.random.choice(teams, 15),
Day=np.random.choice(days, 15),
Goals=np.random.randint(10, size=15)
))
groupby
df.groupby(
['Team', 'Day'],
as_index=False
).mean().rename(columns=dict(Goals='Average'))
Team Day Average
0 Madrid fri 8.00
1 Madrid mon 3.75
2 Man U mon 7.00
3 Man U sat 5.00
4 Man U sun 5.00
5 Man U thu 7.00
6 Man U tue 8.00
7 Man U wed 4.00
解释
-
我希望
子句
不言自明
-
as_index=False
讲述
子句
不要将分组列放入结果的索引中。这使我不必
reset_index
-
mean()
取平均值
-
rename(columns=dict(Goals='Average'))
只是内务处理以获得所需的列名称。我把字典传给了
columns
论证
rename
方法。
对评论的回应
熊猫如何知道用哪一列来计算平均值?例如,如果我有两列有数值,我只想取其中一列的平均值,就会发生这种情况。我该怎么告诉熊猫?
您可以通过在
子句
df.groupby(
['Team', 'Day'],
as_index=False
).Goals.mean().rename(columns=dict(Goals='Average'))
否则,熊猫将尝试平均所有未分组的列。