首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为新列的Min Max和Mean Python Pandas

作为新列的Min Max和Mean Python Pandas
EN

Stack Overflow用户
提问于 2019-09-22 05:41:30
回答 2查看 57关注 0票数 0

我有以下数据帧:

代码语言:javascript
复制
distros = ['distro_1', 'distro_1', 'distro_1', 'distro_2', 'distro_2', 'distro_2']
tco = [110, 110, 111, 109, 109, 108]
tang = [77, 77, 76, 81, 80, 80]

velocities = {'distro': distros, 'tco': tco, 'tang': tang}

df_velocities = pd.DataFrame.from_dict(velocities)

我需要列的最小值,最大值和每个分发版的值每列的平均值​​。

我相信使用agg函数可以做到这一点。我不明白。我正在遵循Pandas的文档,结果是一行。

我所拥有的是

有什么建议吗?

我需要的是:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-22 05:52:30

使用groupby.agg

代码语言:javascript
复制
df_velocities = df_velocities.groupby('distro').agg(['min', 'max', 'mean'])

print(df_velocities)
          tco                  tang               
          min  max        mean  min max       mean
distro                                            
distro_1  110  111  110.333333   76  77  76.666667
distro_2  108  109  108.666667   80  81  80.333333

df_velocities.columns = ['_'.join(i) for i in df_velocities.columns]
#df_velocities.columns = df_velocities.columns.map('_'.join)
df_velocities = df_velocities.reset_index()

print(df_velocities)
     distro  tco_min  tco_max    tco_mean  tang_min  tang_max  tang_mean
0  distro_1      110      111  110.333333        76        77  76.666667
1  distro_2      108      109  108.666667        80        81  80.333333
票数 3
EN

Stack Overflow用户

发布于 2019-09-22 05:51:19

我想你要找的是

代码语言:javascript
复制
df_aggregated = df_velocities.groupby('distro').agg({'tco': ['mean', 'min', 'max'], 'tang': ['mean', 'min', 'max']})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58044320

复制
相关文章

相似问题

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