说我有一个具有以下结构的python DataFrame:

pd.DataFrame([[1,2,3,4],[1,2,3,4],[1,3,5,6],[1,4,6,7],[1,4,6,7],[1,4,6,7]])
Out[262]:
   0  1  2  3
0  1  2  3  4
1  1  2  3  4
2  1  3  5  6
3  1  4  6  7
4  1  4  6  7
5  1  4  6  7


我如何添加一个名为“ ct”的列,该列对第1-3列与每个匹配的行匹配的DataFrame的实例进行计数...这样,当完成所有操作时,DataFrame看起来像这样。

   0  1  2  3  ct
0  1  2  3  4  2
1  1  2  3  4  2
2  1  3  5  6  1
3  1  4  6  7  3
4  1  4  6  7  3
5  1  4  6  7  3

最佳答案

您可以使用groupby + transform + size

df['ct'] = df.groupby([1,2,3])[1].transform('size')
#alternatively
#df['ct'] = df.groupby([1,2,3])[1].transform(len)
print (df)
   0  1  2  3  ct
0  1  2  3  4   2
1  1  2  3  4   2
2  1  3  5  6   1
3  1  4  6  7   3
4  1  4  6  7   3
5  1  4  6  7   3

关于python - 使用python数据帧将满足条件的行计数列添加到满足条件的每一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43497839/

10-12 22:12