作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
例如,我们有这样的数据:
>>> df
name score times
0 tom 100 1
1 tom 99 2
2 tom 100 3
3 jack 99 1
4 jack 99 2
5 tony 100 1
6 tony 100 2
7 tony 100 3
我想得到这样的结果
name score std
0 jack 99.000000 0
1 tom 99.666667 0.57
2 tony 100.000000 0
是否可以立即得到结果?现在我必须分别计算它们并合并结果
最佳答案
您可以应用agg
函数来计算mean
df = df.groupby('name').agg({'score': ['mean', 'std']})
然后你会得到multiindex dataFrame,提取层级做如下操作。
df = df.xs('score', axis=1, drop_level=True)
# 'score' : key on which to get cross section
# axis=1 : get cross section of column
# drop_level=True : returns cross section without the multilevel index
按照您给定的输出执行以下操作:
df = df.reset_index('name')
然后重命名
df.rename(columns={"mean":"score"}, inplace=True)
输出:
name score std
0 jack 99.000000 0.00000
1 tom 99.666667 0.57735
2 tony 100.000000 0.00000
关于python - 如何在 Pandas 中一次计算均值和标准差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44922138/
我是一名优秀的程序员,十分优秀!