gpt4 book ai didi

python - Numpy 操作对 groupby 无效。使用 .groupby(...).mean() 代替,这就是我所做的

转载 作者:行者123 更新时间:2023-12-04 16:41:54 26 4
gpt4 key购买 nike

我想获得以下数据帧的前两列中每一列的平均值 people_preferences根据他们的分割Segment .

      Fun|Not-Fun              Pro-garden|Pro-home      Segment
0 NaN NaN cats
1 NaN NaN cats
2 -1.0 NaN cats

... ... ... ...
4570 -1.0 -1.0 dogs
4571 -1.0 1.0 dogs
4572 -1.0 1.0 dogs

所以我尝试了 people_preferences.groupby('Segment', as_index=False).mean( skipna = True)但它返回: UnsupportedFunctionCall: numpy operations are not valid with groupby. Use .groupby(...).mean() instead
这是完整的错误消息:
---------------------------------------------------------------------------
UnsupportedFunctionCall Traceback (most recent call last)
<ipython-input-489-f8da6e73c33c> in <module>
48 pairs = list(itertools.combinations(df_features.columns, 2))
49
---> 50 [plot_mean(pair[0],pair[1]) for pair in pairs]
51
52 fig = px.scatter(df_features, x=columns_x, y=columns_y)

<ipython-input-489-f8da6e73c33c> in <listcomp>(.0)
48 pairs = list(itertools.combinations(df_features.columns, 2))
49
---> 50 [plot_mean(pair[0],pair[1]) for pair in pairs]
51
52 fig = px.scatter(df_features, x=columns_x, y=columns_y)

<ipython-input-489-f8da6e73c33c> in plot_mean(column_x, column_y)
23 people_preferences = df_features[[column_x,column_y,'Segment']]
24 print(people_preferences)
---> 25 print(people_preferences.groupby('Segment', as_index=False).mean( skipna = True))
26 # parties.append('PEOPLE')
27 dataframe = pd.DataFrame(dict(x=parties_x, y=parties_y, parties = parties))

C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\groupby\groupby.py in mean(self, *args, **kwargs)
1200 Name: B, dtype: float64
1201 """
-> 1202 nv.validate_groupby_func("mean", args, kwargs, ["numeric_only"])
1203 try:
1204 return self._cython_agg_general(

C:\ProgramData\Anaconda3\lib\site-packages\pandas\compat\numpy\function.py in validate_groupby_func(name, args, kwargs, allowed)
375 "numpy operations are not valid "
376 "with groupby. Use .groupby(...)."
--> 377 "{func}() instead".format(func=name)
378 )
379 )

最佳答案

这是 Pandas 中的一个错误。见 mean with skipna either True or False on groupby gives error
解决方法

  • 使用 pandas.aggregate相反

  • # define helper function
    def custom_mean(df):
    return df.mean(skipna=True)

    # instead of
    df.mean(skipna=True)

    # use
    df.agg(custom_mean)
    (注意:可能是 skipna=Truepandas.mean() 的默认值,尽管出于某种原因 docs 显示了 skipna=None 的默认值)

    关于python - Numpy 操作对 groupby 无效。使用 .groupby(...).mean() 代替,这就是我所做的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59106864/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com