对一个数据帧中另一个数据帧中值的出现次数进行计数

Count occurrences of values from one dataframe in another

提问人:Mika 提问时间:11/14/2023 最后编辑:wjandreaMika 更新时间:11/14/2023 访问量:37

问:

我需要在 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
熊猫 数据帧 计数 交叉引用

评论

0赞 wjandrea 11/14/2023
究竟是什么?逗号列分隔符还是数据的一部分?请做一个可复制的熊猫例子df2

答:

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