Python:应用程序/任何记录的百分比进行了其用户分析



下午好,我有一个数据框架。

UserId  Application
    1       apple
    1       orange
    1       apple
    1       pear
    2       apple
    2       orange
    2       pear
    2       grapefruit
    3       apple
    3       grapefruit
    3       apple
    1       apple

我正在尝试创建一个列表,该列表将每个唯一应用程序都计入拥有它们的用户ID的百分比。作为输出的一个示例,表在下面

Application    Percentage
apple              100
orange             66
pear               66 
grapefruit         66

此输出告诉我,对于每个用户,Apple出现在100%的时间中,橙色出现了66%的时间。等等,但是我无法使它起作用。

我下面的代码有效,但产生3.0作为值。

dfsearch['Percentage'] = (len(dfsearch.Application.value_counts())/len(dfsearch.UserID.value_counts()))
dfsearch

这可能是不正确的,因为它不是列表,但这就是为什么我需要帮助:)

您可以从使用drop_duplicates删除重复记录开始,然后致电value_counts,除以唯一用户的数量,然后乘以100:

x = df.drop_duplicates()['Application'].value_counts() / len(df['UserId'].unique()) * 100
x

输出:

apple         100.000000
pear           66.666667
grapefruit     66.666667
orange         66.666667
Name: Application, dtype: float64

然后将其转换为数据框:

x.astype(int).to_frame('Percentage').rename_axis('Application').reset_index()

输出:

  Application  Percentage
0       apple         100
1        pear          66
2  grapefruit          66
3      orange          66

使用groupby() nunique()

dfsearch.groupby("Application").UserID.nunique()/dfsearch.UserID.nunique()
#Application
#apple         1.000000
#grapefruit    0.666667
#orange        0.666667
#pear          0.666667
#Name: UserId, dtype: float64

相关内容

  • 没有找到相关文章

最新更新