我需要在 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
这个有用吗:
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