Python 比较数据帧并根据另一个数据帧中的相似行数更改列值

Python 比较数据帧并根据另一个数据帧中的相似行数更改列值,python,pandas,numpy,Python,Pandas,Numpy,假设我有两个数据帧: df1: df2: 具有类似格式的更大数据集,但有一个计数列需要基于df1递增 Person Number Type Count 0 Kyle 12 Male 0 1 Jacob 15 Male 0 3 Sally 43 Female 0 4 Mary 15 Female 5 我想做的是根据同一个人在df1中出现的次数增加count列 此示例的例外输出: Person N

假设我有两个数据帧:

df1:

df2: 具有类似格式的更大数据集,但有一个计数列需要基于df1递增

    Person Number Type    Count 
0   Kyle   12     Male    0
1   Jacob  15     Male    0
3   Sally  43     Female  0
4   Mary   15     Female  5

我想做的是根据同一个人在df1中出现的次数增加count列

此示例的例外输出:

    Person Number  Type    Count 
0   Kyle   12     Male    1
1   Jacob  15     Male    2
3   Sally  43     Female  0
4   Mary   15     Female  5
对于Kyle,将计数增加到1,因为有一个实例;对于Jacob,将计数增加到2,因为有两个实例。不要更改Sally和Mary的值,并保持值不变

我该怎么做?我尝试过使用.loc,但我不知道如何解释同一行的两个实例。这意味着,即使df1中有两个雅各布,我也只能使计数增加1

我试过了

df2.loc[df2['Person'].值==df1['Person'].值,'Count']+=1

但是,这并不能解释重复的情况

df1 = df1.groupby(df.columns.tolist(), as_index=False).size().to_frame('Count').reset_index()

df1 = df1.set_index(['Person','Number','Type'])
df2 = df2.set_index(['Person','Number','Type'])

df1.add(df2, fill_value=0).reset_index()


值\u计数
+索引对齐

u = df2.set_index("Person")
u.assign(Count=df1["Person"].value_counts().add(u["Count"], fill_value=0))

df1 = df1.groupby(df.columns.tolist(), as_index=False).size().to_frame('Count').reset_index()
df2.merge(df1, on=['Person','Number','Type'], how='left').set_index(['Person','Number','Type']).sum(axis=1).to_frame('Count').reset_index()
u = df2.set_index("Person")
u.assign(Count=df1["Person"].value_counts().add(u["Count"], fill_value=0))
        Number    Type  Count
Person
Kyle        12    Male    1.0
Jacob       15    Male    2.0
Sally       43  Female    0.0
Mary        15  Female    5.0