我有一个包含两列的数据集 - Student_login 和 reviewer_login。一个人既可以是学生,也可以是审稿人。无论该人的角色如何,我们都需要找到唯一数量的对。例如,login_1、login_2 和login_2、login_1 对必须计数一次。在最终的数据集中,我想获取每个人的唯一联系人数量。
我的数据集看起来像:
学生登录 | 评论者登录 |
---|---|
登录_1 | 登录_2 |
登录_2 | 登录_1 |
登录_1 | 登录_3 |
登录_2 | 登录_3 |
结果数据集应如下所示:
登录 | 独特的_联系人 |
---|---|
登录_1 | 2 |
登录_2 | 2 |
登录_1 | 2 |
有什么函数可以实现这个吗?
这应该有效
import pandas as pd
data = {'student_login': ['login_1', 'login_2', 'login_1', 'login_2'],
'reviewer_login': ['login_2', 'login_1', 'login_3', 'login_3']}
df = pd.DataFrame(data)
# Combine the two columns and sort each row to ensure consistency
df['pair'] = df.apply(lambda row: tuple(sorted([row['student_login'], row['reviewer_login']])), axis=1)
pair_counts = df['pair'].value_counts()
result_df = pd.DataFrame({'login': pair_counts.index, 'unique_contacts': pair_counts.values})
print(result_df)