Python 如何计算其他列中有多少用户具有特定值的比率
我有一个user_id列(每个唯一用户有多行),我还有另一个列用于他们单击的链接(每个链接一行,但一个用户可能单击了多个链接)。 我想知道点击链接的用户的百分比: 一, 二, 三, 更重要的是,那些在所有1、2和3的比赛中获胜的选手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)
谢谢这里有一个简单的解决方案:
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版本?