两个数据框,计算重复的ID并与另一个具有相同ID的数据框合并?

Posted

技术标签:

【中文标题】两个数据框,计算重复的ID并与另一个具有相同ID的数据框合并?【英文标题】:Two dataframes, count repeated ids and merge with another dataframe with the same id? 【发布时间】:2021-09-02 02:01:59 【问题描述】:

我有两个不同的数据框,在第一个中我有唯一的 id,在第二个中我有与唯一的相同的 id,它们可能会出现多次,有些可能不会出现。

我想计算每个 id 在数据框 2 中重复的次数,然后与数据框 1 合并到相应的 id 中。

数据框 1:

id_unique  name
400        t1
450        t2
300        t10
600        t20
650        t30

数据框 2:

id    other_columns
400   s1    
400   s2
650   s3
600   s4
600   s5
600   s6

想要的结果:

id_unique  name  count_df2
400        t1    2
450        t2    0
300        t10   0
600        t20   3
650        t30   1

我该怎么做?

【问题讨论】:

【参考方案1】:

Series.mapSeries.value_counts 一起使用,并将缺失值替换为0

df1['count_df2'] = df1['id_unique'].map(df2['id'].value_counts()).fillna(0).astype(int)

【讨论】:

【参考方案2】:

我创建了一个基本示例:

df1 = pd.DataFrame('id': [1, 2, 3, 4, 5], 'name': [1, 1, 2, 2, 3])
df2 = pd.DataFrame('id': [1, 1, 1, 2, 2], 'name': [1, 1, 2, 2, 3])
df1['df2_count'] = df1['id'].map(df2.groupby('id').size())

【讨论】:

以上是关于两个数据框,计算重复的ID并与另一个具有相同ID的数据框合并?的主要内容,如果未能解决你的问题,请参考以下文章

当按钮没有ID或名称并且与另一个按钮具有相同的类时,在带有VBS的IE中单击按钮

Android TextView:与另一个具有相同 ID 的标签冲突

合并具有相同 ID 变量的行 [重复]

获取具有特定数量的重复值的行

如何计算与 R 中相同列值关联的两个行值的差异?

从具有相同值的两个表中选择数据后结果重复