Python 如何查找数据帧中的组合计数?

Python 如何查找数据帧中的组合计数?,python,pandas,dataframe,Python,Pandas,Dataframe,我是python新手,正在努力理解熊猫。我有一个数据帧- df CID ... hash 0 1902659 ... e96911b9693ec128b314c629bb504808f182bec7 1 1902663 ... 245befc377d09fe0fd5544e00d0bfe68851e8cba 2 1902674 ... 80738d5

我是python新手,正在努力理解熊猫。我有一个数据帧-

df
         CID  ...                                      hash
0        1902659  ...  e96911b9693ec128b314c629bb504808f182bec7
1        1902663  ...  245befc377d09fe0fd5544e00d0bfe68851e8cba
2        1902674  ...  80738d5fcc402938e90db2366ebe5d4c6dd3933d
3        1902674  ...  417178ac43aea45613413ac13e0490e0aaea5a92
4        1902674  ...  417178ac43aea45613413ac13e0490e0aaea5a92
         ...  ...                                       ...
1004625  2565017  ...  c3e063e7eff025de2b63c5638f7df279f14eed56
1004626  2565017  ...  536dde3209eac448f64787a4126bf599ecab3979
1004627  2565068  ...  83475a4e61e2bfec60684eb55dfa5cced918bc97
1004628  2565250  ...  f58347052683c5c4e58f2e1fbb7e1c49f98d556b
1004629  2565373  ...  3fdbac7e12abfcacbd48ff11644236169dc67a15

[1004630 rows x 4 columns]

我想要一个列来反映CID和hash值的组合在整个数据帧中完全相同的次数。例如,在CID 1902674中,我们看到两个实例中的哈希键在两种情况下都是相同的,因此,由于它是一个匹配项,因此它应该显示为计数1,并且如果相同的确切组合显示的时间晚于计数,则会继续增加。我该怎么做呢?

您可以使用pandas中的方法
.pivot\u table
来执行此操作

import pandas as pd

#df_initial: The initial dataframe
#df_solution: The final dataframe

df_solution = df_initial.pivot_table(index=['Cid','Hash'], aggfunc='size')
print (df_solution )
您可以使用
groupby()

fields=['CID','hash']
df.groupby(字段).count()
idx
CID哈希
1902659 e96911b9693ec128b314c629bb504808f182bec7 1
1902663 245befc377d09fe0fd5544e00d0bfe68851e8cba 1
1902674 417178ac43aea45613413ac13e0490e0aaea5a92 2
fields = ['CID', 'hash']
df.groupby(fields).count()

                                                  idx
CID     hash                                         
1902659 e96911b9693ec128b314c629bb504808f182bec7    1
1902663 245befc377d09fe0fd5544e00d0bfe68851e8cba    1
1902674 417178ac43aea45613413ac13e0490e0aaea5a92    2 <--
        80738d5fcc402938e90db2366ebe5d4c6dd3933d    1
2565017 536dde3209eac448f64787a4126bf599ecab3979    1
        c3e063e7eff025de2b63c5638f7df279f14eed56    1
2565068 83475a4e61e2bfec60684eb55dfa5cced918bc97    1
2565250 f58347052683c5c4e58f2e1fbb7e1c49f98d556b    1
2565373 3fdbac7e12abfcacbd48ff11644236169dc67a15    1