首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫-按列分组,应用函数创建一个新列--给出不正确的结果。

熊猫-按列分组,应用函数创建一个新列--给出不正确的结果。
EN

Stack Overflow用户
提问于 2021-12-08 10:22:33
回答 1查看 101关注 0票数 1

我有这样的数据:

代码语言:javascript
复制
   Thing   quarter    num_col1    num_col2
    aaa    2010Q1      1.3         99.76
    bbb    2010Q1      11.3        109.76
    ccc    2010Q1      91.3        119.76
   .....
   .....
    aaa    2019Q4      21.3        119.76
    bbb    2019Q4      41.3        299.76
    ccc    2019Q4      201.3       199.76

我需要按Thing列分组,并计算所有季度的num_col1num_col2列的移动平均值。

到目前为止,我一直在尝试这样做:

代码语言:javascript
复制
## define moving-average function
N = 2
def pandas_rolling(x):
    return pd.Series.rolling(x, window=N).mean()

## now group-by and calculate moving averages
things_groupby = df.groupby(by=['Thing'])
## below lines are giving incorrect values
df.loc[:,'num_col1_SMA'] = (things_groupby['num_col1'].apply(pandas_rolling)).values
df.loc[:,'num_col2_SMA'] = (things_groupby['num_col2'].apply(pandas_rolling)).values

但是,当我手动处理Thing列中的一个独特之处时,如下图所示,它会给出预期的结果。

代码语言:javascript
复制
pandas_rolling(df.loc[df.loc[:,'Topic']=='aaa'].loc[:,'num_col1']).values

我在计算单个组的移动平均值,然后在数据中填充它们时,我做了什么错事呢?我该如何正确地做这件事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-08 10:34:07

您可以删除values

代码语言:javascript
复制
df['num_col1_SMA'] = things_groupby['num_col1'].apply(pandas_rolling)
df['num_col2_SMA'] = things_groupby['num_col2'].apply(pandas_rolling)

或者:

代码语言:javascript
复制
df[['num_col1_SMA', 'num_col2_SMA']] = (things_groupby[['num_col1','num_col2']]
                                               .apply(pandas_rolling))

如果可能的话,没有groupby.apply是必要的,删除MultiIndex的第一级

代码语言:javascript
复制
df[['num_col1_SMA', 'num_col2_SMA']] = (things_groupby[['num_col1','num_col2']]
                                               .rolling(window=N)
                                               .mean()
                                               .droplevel(0))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70273377

复制
相关文章

相似问题

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