簡體   English   中英

計算一個數據幀內兩列中以相反對形式存在的唯一值的數量?

[英]counting the number of unique values that exist as opposite pairs in two columns within a dataframe?

我有一個包含數千行用戶交互數據的數據框。

我用它來給我的用戶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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM