代码之家  ›  专栏  ›  技术社区  ›  Jiayu Zhang

python pandas中的平均投票聚合

  •  1
  • Jiayu Zhang  · 技术社区  · 4 年前

    我有一个这样的数据帧,

    ID   vote1   vote2   vote3    agg_vote
    1     -1      -1       1        -1
    2      0       0      -1        -1
    3      1       1      -1         1
    4      0       1       0         1
    ...
    

    我试图汇总每位选民的投票结果。但如果我简单地把它们加在一起,就会得到一个误导性的结果,大多数投票结果都被倍数掩盖了 0 s.例如,在 ID = 2 ,大多数选民选择了0,但汇总结果为-1。同样的事情也发生在 ID = 4 。我如何在这里更正我的计算?

    最终输出将是这样的,

    ID   vote1   vote2   vote3    agg_vote
    1     -1      -1       1        -1
    2      0       0      -1         0
    3      1       1      -1         1
    4      0       1       0         0
    ...
    
    1 回复  |  直到 4 年前
        1
  •  3
  •   BENY    4 年前

    这更像是 mode

    df['new']=df.filter(regex='^vote').mode(axis=1).iloc[:,0]
    df
    Out[134]: 
       ID  vote1  vote2  vote3  agg_vote  new
    0   1     -1     -1      1        -1   -1
    1   2      0      0     -1        -1    0
    2   3      1      1     -1         1    1
    3   4      0      1      0         1    0
    

    更新问题检查第4行,返回-1

       ID  vote1  vote2  vote3  agg_vote
    0   1     -1     -1      1        -1
    1   2      0      0     -1        -1
    2   3      1      1     -1         1
    3   4      0      1     -1         1
    df.filter(regex='^vote').mode(axis=1).iloc[:,0]
    Out[161]: 
    0   -1.0
    1    0.0
    2    1.0
    3   -1.0
    Name: 0, dtype: float64