首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫-生成一个由数据集摘要组成的数据

熊猫-生成一个由数据集摘要组成的数据
EN

Stack Overflow用户
提问于 2020-12-04 12:09:14
回答 1查看 34关注 0票数 1

我有一只熊猫数据格式df of shape (100, 10) (100行,10 cols),我想从df生成一个数据格式df_summary,它:

  • (1, 4)形状,列名为“col1”、“col2”、“col3”、“col4”
  • 。第一行包含mean‘s of df's 1 cols、2-4 cols (这3列的所有行的平均数)、5-8 cols和9-10 cols
  • ,第2行包含variances of dfs、2-4 cols、5-8 cols和9-10 colsh 215f 216/code>。

我做了我的研究,但仍然不知道如何有效地做到这一点。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-04 12:34:33

以下是2种解决方案,第一种是列表中指定的范围,由stack重塑,由Series.agg通过pass到concat进行聚合。

代码语言:javascript
运行
复制
np.random.seed(2020)
df = pd.DataFrame(np.random.randint(10, size=(100, 10)))

L = [[0], range(2, 4), range(5, 8), range(8, 10)]
cols = ['col1', 'col2', 'col3', 'col4']

out = pd.concat([df[x].stack().agg(['mean','var']) for x in L], axis=1, keys=cols)
print (out)
          col1      col2      col3      col4
mean  4.120000  4.270000  4.580000  4.405000
var   8.793535  8.298593  7.963478  9.418065

或者对于范围使用cut,由DataFrame.melt取消枢轴,然后用var聚合mean

代码语言:javascript
运行
复制
cols = ['col1', 'col2', 'col3', 'col4']

df.columns = pd.cut(df.columns, [0,1,5,8,11], labels=cols, include_lowest=True, right=False)

df = df.melt().groupby('variable')['value'].agg(['mean','var']).T
print (df)
variable      col1      col2      col3      col4
mean      4.120000  4.482500  4.580000  4.405000
var       8.793535  8.611222  7.963478  9.418065
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65143301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档