计算一个数据帧中的值在另一个数据帧中出现的次数

问题描述 投票:0回答:1

我需要在 df1 中创建另一列来告诉我出现次数。请注意,另一个数据帧没有完全匹配,但包含值。

df1:

user1
user2
user3
user4
user5

df2:

user1,user2
user2, user1
user1, user5
user4,user5

我尝试过:

df1['Newcount'] = df1['df1:'].map(df2['df2:'].value_counts())

但这算精确匹配。

期望的输出应该是:

user1  3
user2  2
user3  0
user4  1
user5  2
pandas dataframe count cross-reference
1个回答
0
投票

这个有用吗:

df1 = pd.DataFrame({'col' : ['user1', 'user2', 'user3', 'user4', 'user5']})
df2 = pd.DataFrame({'col' : ['user1;user2', 'user2;user1', 'user1;user5', 'user4;user5']})

df1.merge(df2.assign(col = df2['col'].str.split(';')).explode('col').value_counts().reset_index(), how='left').fillna(0)


    col     0
0   user1   3.0
1   user2   2.0
2   user3   0.0
3   user4   1.0
4   user5   2.0
© www.soinside.com 2019 - 2024. All rights reserved.