两个数据框,计算重复的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.map
与Series.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中单击按钮