我有一个包含数千行用户交互数据的数据框。
我用它来给我的用户ID以某些字母开头的用户
df[
df.userA.str.startswith(('b','c','e','f','5')) &
df.userB.str.startswith(('b','c','e','f','5'))
]
哪个返回了看起来像这样的东西
userA column: userB column: timestamp column:
f55570ac-c757-4e1f-b0b2-34997614f929 5ccd7ffd-7776-4a81-81dd-5331972454c2 2017-12-12 00:00:00
5bfb4313-1d38-4dd2-944d-82bcabea9e31 ebc48322-f8b8-4994-968c-93e8d9e9df1d 2017-12-13 00:03:00
ebc48322-f8b8-4994-968c-93e8d9e9df1d 5bfb4313-1d38-4dd2-944d-82bcabea9e31 2017-12-14 00:03:00
“显示”的是在第一行中,用户f55570ac-在该时间戳后紧随用户5ccdffd。
在第二行中,用户随后5bfb4313-在该时间戳ebc48322-,以及在第三行中,用户随后ebc48322-用户5bfb4313-在该时间戳回来,并因此具有相互关系。
如何计算整个数据框中相互关系的数量?即,在userA列和userB列中存在一对唯一的userID?
任何想法将不胜感激:)
如果您只想检查colB中的colA值,则可以使用此代码段
df['userA column: '].isin(df['userB column: ']).sum()
出:
2
在userA和userB中查找出现次数计数
pd.concat([df['userA']+'->'+df['userB'],df['userB']+'->'+df['userA']]).value_counts()
出:
5bfb4313-1d38-4dd2-944d-82bcabea9e31->ebc48322-f8b8-4994-968c-93e8d9e9df1d 2
ebc48322-f8b8-4994-968c-93e8d9e9df1d->5bfb4313-1d38-4dd2-944d-82bcabea9e31 2
5ccd7ffd-7776-4a81-81dd-5331972454c2->f55570ac-c757-4e1f-b0b2-34997614f929 1
f55570ac-c757-4e1f-b0b2-34997614f929->5ccd7ffd-7776-4a81-81dd-5331972454c2 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句