使用groupby pandas python时从数据框中获取列。

时间:2017-06-15 23:40:42

标签: python pandas dataframe

我有以下数据框:

Age   Sex
10     M
20     M
30     F
15     F

我想要一个包含每个性别的平均年龄的数据框。那就是:

Age   Sex  Average
10     M     15
20     M     15
30     F     22.5
15     F     22.5

但我做的是:

average = dataframe.groupby('Sex').mean()

然后我会使用join函数。尽管如此,数据帧 不包括性别作为一个列,所以我不能合并它。

2 个答案:

答案 0 :(得分:1)

尝试使用:

average = dataframe.groupby('Sex', as_index=False).mean()

设置as_index=FalseSex作为结果数据框中的列。

答案 1 :(得分:1)

无需执行合并,请使用transform

dataframe['Average'] = dataframe.groupby('Sex').transform('mean')

通常,如果希望组级聚合与原始DataFrame具有相同的形状,请使用transform

结果输出:

   Age Sex  Average
0   10   M     15.0
1   20   M     15.0
2   30   F     22.5
3   15   F     22.5