подсчитывать количество уникальных значений, которые существуют в виде противоположных пар в двух столбцах внутри фрейма данных?

1

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

Я использовал это, чтобы дать мне только пользователей, которые 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?

Благодарим за любую идею :)

Теги:
pandas
dataframe
userid

1 ответ

0
Лучший ответ

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

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

Из:

2

Поиск последовательности вхождений count в 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
  • 0
    Это не работает, я получаю сообщение об ошибке ... :(
  • 1
    @ Эрик, ты хочешь рассказать, что это за ошибка? :)
Показать ещё 13 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню