【问题标题】:ValueError: operands could not be broadcast together with shapes (7410,) (3,)ValueError: 操作数无法与形状一起广播 (7410,) (3,)
【发布时间】:2018-09-03 14:26:44
【问题描述】:

我有一个格式如下的 df:

    Priority Mined_Category           server date_reported  Count Zscore_Volume
1 - Critical   Memory issue        xxxxxx111    2018-07-11      1      nan
1 - Critical   Memory issue        xxxxxx111    2018-08-11      1      nan
1 - Critical   Memory issue        yyyyyy195    2018-07-06      1      1.71
1 - Critical   Memory issue        yyyyyy195    2018-07-08      1      1.71
    2 - High   Memory issue  abcabcabcba1410    2018-08-21      1     nan

我的目标是每当 Priority Mined_CategoryServer groupby 计数为 1 时将 nan 替换为 100,并在 Priority Mined_CategoryServer groupby 计数为 >1 时将 nan 替换为 1000

我试过下面的代码:

> df_aggegrate_Volume.loc[(df_aggegrate_Volume.groupby(["Priority","Mined_Category","server"]).count()>1)&(df_aggegrate_Volume['Zscore_Volume'].isnull()) ,"Zscore_Volume"]= -100

但我得到以下错误:

ValueError:操作数无法与形状一起广播 (7410,) (3,)

【问题讨论】:

    标签: python pandas pandas-groupby


    【解决方案1】:

    需要GroupBy.transform 以返回与原始df 相同大小的Series,由聚合值填充:

    m1 = (df_aggegrate_Volume.groupby(["Priority","Mined_Category","server"])["server"]
                             .transform('count')>1)
    
    m2 = df_aggegrate_Volume['Zscore_Volume'].isnull()
    
    df_aggegrate_Volume.loc[m1 & m2 ,"Zscore_Volume"]= -100
    
    print (df_aggegrate_Volume)
           Priority Mined_Category           server date_reported  Count  \
    0  1 - Critical   Memory issue        xxxxxx111    2018-07-11      1   
    1  1 - Critical   Memory issue        xxxxxx111    2018-08-11      1   
    2  1 - Critical   Memory issue        yyyyyy195    2018-07-06      1   
    3  1 - Critical   Memory issue        yyyyyy195    2018-07-08      1   
    4      2 - High   Memory issue  abcabcabcba1410    2018-08-21      1   
    
       Zscore_Volume  
    0        -100.00  
    1        -100.00  
    2           1.71  
    3           1.71  
    4            NaN  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-06
      • 2017-09-09
      • 2012-10-31
      • 2013-04-07
      • 2012-08-05
      • 2018-08-18
      • 2020-06-20
      • 2014-08-24
      相关资源
      最近更新 更多