提问人:Mika 提问时间:11/14/2023 最后编辑:wjandreaMika 更新时间:11/14/2023 访问量:37
对一个数据帧中另一个数据帧中值的出现次数进行计数
Count occurrences of values from one dataframe in another
问:
我需要在 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
答:
1赞
Karthik S
11/14/2023
#1
这是否有效:
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
评论
df2