Python基于另一列更改一列的数据帧计数值

2024-04-26 02:55:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图根据另一列的值来计算一列的值。例如,假设您有3列,用户ID、状态和状态计数。用户ID是每个人的唯一标识符,Status表示完成或未完成,Status counts表示特定用户ID显示完成或未完成的次数。下表示例:

User ID| Status            Status counts
1     | Complete.     |   12
1     | Not complete. |   11

我想在这里添加两列。在一列中,我希望完成的次数(在我上面的示例中为12)除以该特定用户的完成和未完成之和。因此,此列将查看用户id(这里类似于用户id=1),将其状态计数相加(这里为12+11),然后创建一个列,将状态计数作为刚刚完成(这里为12)的状态计数,并除以状态计数之和(12+11),因此为(12/11+12)。然后我想为未完成(11/12+11)执行此操作。我想对许多不同的用户ID执行此操作。任何帮助都将不胜感激


Tags: 用户id示例状态statusnot标识符次数
1条回答
网友
1楼 · 发布于 2024-04-26 02:55:12
df = pd.DataFrame({'UserID':[1,1],'Status':['complete','not complete'],'Count':[12,11]})

def helper(data):
    num= data[data['Status']=='complete']['Count']
    denum = int(data[data['Status']=='not complete']['Count']) + int(data[data['Status']=='complete']['Count'] )
    return  num / denum

df.groupby('UserID').apply(helper)

这将产生以下输出:

Count   0
UserID
1     .521739

相关问题 更多 >