如何计算 Pandas 中每个元素的唯一组合?

问题描述 投票:0回答:1

我有一个包含两列的数据集 - 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

有什么函数可以实现这个吗?

python pandas data-analysis
1个回答
0
投票

这应该有效

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)
© www.soinside.com 2019 - 2024. All rights reserved.