首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >同时旋转和分组列

同时旋转和分组列
EN

Stack Overflow用户
提问于 2019-06-24 08:08:39
回答 1查看 35关注 0票数 0

这是一个涉及旋转和分组数据的数据转换问题。我看了一大堆关于这个话题的SE posts,我几乎做到了,但还不完全是。因此,任何帮助都是非常感谢的。

我的数据看起来像这样。

所以你可以看到经典的数据库格式,其中有一口井和一些井ID号,然后有不同的化学品测量在不同的日期。因此,一个简单的透视表只会创建新的列,每个日期都是它自己的列。然而,观察是在不同的日期捕获的,所以我最终会得到大约100列。相反,我想创建这些旋转列,然后对一年的值进行平均。

目标:

所以我希望结果看起来像下面这样。对于每个Chemical-Year组合,每个井都应该有单独的列,其余的列,如纬度和经度应该保留在最终数据中。

Well Id    TCPR123_2019    TCPC123_2018    TBR123_2019  Latitude  Longitude   ...
0103041-001    0.0         0.25            0.0        37.72...  -122.157...
0105003-001    0.0         0.5             0.3        37.66...  -121.84...

到目前为止我做了什么:

因此,我做了许多转换,并使用以下代码:

df.groupby(['WELL ID','CHEMICAL', 
    pd.Grouper(freq='Y', key='DATE', closed='left')])['RESULTS'].mean()

结果是这样的。

WELL ID      CHEMICAL  DATE      RESULTS
0103041-001  AS          2011-12-31      4.300000
                         2015-12-31      2.300000
                         2019-12-31      0.000000
0105003-001  AS          2011-12-31      0.000000
                         2014-12-31      0.000000

我只需要把它旋转一下,然后让剩下的列显示出来。我必须使用['RESULTS'].mean(),否则它会取所有列的平均值。我尝试使用df.unstack(),但这不包括其他剩余的列。但我不确定如何将pandas.DataFrame.pivot()df.groupby()操作结合起来?我就在最后一步,所以任何帮助都是非常感谢的。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56728581

复制
相关文章

相似问题

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