- 此问题在此处已有答案**:
How to assign a name to the size() column?(5个答案)
2天前关闭。
我想根据每一行的字段汇总一列,并将结果作为一个字段(列)附加到每一行。例如,我想统计一列有多少个值等于每一行的该列的值("条件"列只是为了简化,它实际上是使用每一行的字段计算的值。):
原始 Dataframe :
condition
0 True
1 False
2 True
3 True
4 False
5 True
6 True
结果:
condition Count
0 True 5.0
1 False 2.0
2 True 5.0
3 True 5.0
4 False 2.0
5 True 5.0
6 True 5.0
我只能想到使用iterrows
以迭代的方式来做这件事,尽管这不是经典的Pandas方式:
result = pd.DataFrame(index=df.index)
for i,r in df.iterrows():
df2=df.loc[(df['condition']==r['condition'])]
result.loc[i,'condition']=r['condition']
result.loc[i,'Count']=df2.shape[0] # How many items are the same as that row's 'condition' field
有什么典型的矢量化方法可以做到这一点吗?谢谢您的帮助。
2条答案
按热度按时间woobm2wo1#
您可以使用
value_counts
和map
方法执行此操作:输出:
w8f9ii692#
你可以在panda中使用groupby方法,根据每一行的字段汇总一列,下面是一个例子:
这将为您提供所需的结果: