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

时间:2020-06-18 15:58:02

标签: python pandas dataframe

我正在尝试根据另一列的值来计算一列的值。假设您有3列,即用户ID,状态和Status_counts。用户ID是每个人的唯一标识符,“状态”显示“完成”或“未完成”,然后状态计数给出该特定用户ID出现“完成”或“未完成”的次数。下表示例:

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

我想为此添加两列。在一栏中,我希望完成显示的次数(在上面的示例中为12)除以该特定用户的完成和未完成的总和。因此,此列将查看用户标识(此处就像用户标识= 1一样),加总其状态计数(此处为12 + 11),然后创建一列以仅显示完整状态计数(此处为12)并除以状态计数的总和(12 +11),因此它将是(12/11 + 12)。然后,我想这样做是不完整的(11/12 +11)。我想对许多不同的用户ID进行此操作。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

match /customers/cumstomerkey {
  allow get;
}

这将产生以下输出:

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)