Python 如何计算其他列中有多少用户具有特定值的比率

Python 如何计算其他列中有多少用户具有特定值的比率,python,pandas,Python,Pandas,我有一个user_id列(每个唯一用户有多行),我还有另一个列用于他们单击的链接(每个链接一行,但一个用户可能单击了多个链接)。 我想知道点击链接的用户的百分比: 一, 二, 三, 更重要的是,那些在所有1、2和3的比赛中获胜的选手 谢谢这里有一个简单的解决方案: df = pd.DataFrame({"User_ID": [1, 1, 1, 2, 2, 3, 3], "Link": [6, 2, 4, 1, 2, 1, 3]}) print(df)

我有一个user_id列(每个唯一用户有多行),我还有另一个列用于他们单击的链接(每个链接一行,但一个用户可能单击了多个链接)。 我想知道点击链接的用户的百分比:

一,

二,

三,

更重要的是,那些在所有1、2和3的比赛中获胜的选手


谢谢

这里有一个简单的解决方案:

df = pd.DataFrame({"User_ID": [1, 1, 1, 2, 2, 3, 3], 
                   "Link": [6, 2, 4, 1, 2, 1, 3]})
print(df)

    Link    User_ID
0   6       1
1   2       1
2   4       1
3   1       2
4   2       2
5   1       3
6   3       3

# get overall user count
n_users = df["User_ID"].unique().size

# define helper function to calculate percentage
def get_percentage(x):
    bool_links = df["Link"].isin(x)
    count_users = df.loc[bool_links, "User_ID"].unique().size
    return count_users / float(n_users)

# print percentages
for link in [[1], [2], [3], [1, 2, 3]]:
    print("Link", link, get_percentage(link))

Link [1] 0.6666666666666666
Link [2] 0.6666666666666666
Link [3] 0.3333333333333333
Link [1, 2, 3] 1.0

非常感谢潘森。get Total user count不起作用。不幸的是,我收到以下消息:“int”对象不起作用callable@Pierre那么这个
df[“User_ID”].unique().size
会导致错误吗?请检查您是否没有
size()
。您使用的是什么pandas/python版本?