2024-04-26 09:43:00 发布
网友
我有一个包含列的数据框:
User_id PQ_played PQ_offered 1 5 15 2 12 75 3 25 50
我需要把PQ峎玩的游戏除以PQ峈提供的游戏的百分比。到目前为止,我一直在努力:
我知道我大错特错了。在
我完全同意@mVChr的观点,认为你把需要做的事情复杂化了。如果你只是想增加一个额外的专栏,那么他的反应就恰到好处了。如果您确实需要groupby,值得注意的是,这通常用于聚合,例如sum(),count()等。例如,如果您在User_id列中有多个记录具有非唯一值,则可以使用
groupby
sum()
count()
User_id
df['%_PQ_played'] = df['PQ_played'] / df['PQ_offered'] * 100
然后执行聚合。假设你想知道为每个用户提供的游戏的平均游戏数量,你可以这样做
这将产生(数字是任意的)
User_id %_PQ_played 0 1 52.777778 1 2 29.250000 2 3 65.000000
您可以使用lambda函数
df.groupby('User_id').apply(lambda x: (x['PQ_played']/x['PQ_offered'])*100)\ .reset_index(1, drop = True).reset_index().rename(columns = {0 : '%_PQ_played'})
你得到了
这比你想象的要简单得多。在
df['%_PQ_played'] = df['PQ_played'] / df['PQ_offered'] * 100 PQ_offered PQ_played %_PQ_played User_id 1 15 5 33.333333 2 75 12 16.000000 3 50 25 50.000000
我完全同意@mVChr的观点,认为你把需要做的事情复杂化了。如果你只是想增加一个额外的专栏,那么他的反应就恰到好处了。如果您确实需要
groupby
,值得注意的是,这通常用于聚合,例如sum()
,count()
等。例如,如果您在User_id
列中有多个记录具有非唯一值,则可以使用然后执行聚合。假设你想知道为每个用户提供的游戏的平均游戏数量,你可以这样做
^{pr2}$这将产生(数字是任意的)
您可以使用lambda函数
你得到了
^{pr2}$这比你想象的要简单得多。在
相关问题 更多 >
编程相关推荐