以python为单位的平均票数聚合
我有一个这样的数据框以python为单位的平均票数聚合,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我有一个这样的数据框 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
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
...
这更像是
模式
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行it返回-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
这更像是
模式
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行it返回-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
嗨,尤本,谢谢你的回答。我还有一个条件,当三个投票者给你-1、0和1时,使用mode只返回-1。我该如何避免此情况并将其作为0返回?@JiayuZhang它将返回-1:-)非常感谢!我刚刚用
sum_vote
column:)df['agg_vote']=np.其中(df['sum_vote']=0,0,df['agg_vote'])
嗨,YOBEN,谢谢你的回答。我还有一个条件,当三个投票者给你-1、0和1时,使用mode只返回-1。我该如何避免此情况并将其作为0返回?@JiayuZhang它将返回-1:-)非常感谢!我刚刚用sum\u vote
column:)df['agg\u vote']=np.其中(df['sum\u vote']==0,0,df['agg\u vote'])