подсчитывать количество уникальных значений, которые существуют в виде противоположных пар в двух столбцах внутри фрейма данных? - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть фрейм данных с тысячами строк данных о взаимодействии с пользователем.

Я использовал это, чтобы дать мне только пользователей, чей userID начинается с определенных букв

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?

Любые идеи будут с благодарностью приняты :)

1 Ответ

0 голосов
/ 23 сентября 2018

Если вы хотите просто проверить значения colA в colB, вы можете использовать этот фрагмент

df['userA column: '].isin(df['userB column: ']).sum()

Out:

2

Поиск последовательности событий в userA и userB

pd.concat([df['userA']+'->'+df['userB'],df['userB']+'->'+df['userA']]).value_counts()

Out:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...