使用python数据帧,将符合条件的行计数列添加到满足它的每一行

时间:2017-04-19 13:55:28

标签: python pandas dataframe data-science

假设我有一个具有以下结构的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看起来像这样完成了。

   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

1 个答案:

答案 0 :(得分:4)

您可以使用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