我有一个数据框,其中有一列称为“成功”(以及其他)。在此列中,我们只有0和1值。现在,我想计算每个值出现多少次。
我尝试了以下命令:sdf.groupby('success').sum()
,但它只为我提供了一个表,该表在1个视图中具有唯一计数。
由于我需要对0和1的各个频率进行数学运算,因此需要2个变量,因此需要分别进行计算。例子:
col1=6100
col2=5878
c=col1/(col1+col2)
该怎么做?
答案 0 :(得分:0)
您可以使用value_counts
来计算一列中每个值出现的次数。然后,您可以将生成的序列转换为数据框,并将其转置以获取值作为列标题。
counts = pd.DataFrame(sdf['success'].value_counts()).transpose()
让我知道这是否对您有用。
要进行计算,您可以尝试将lambda
函数应用于结果数据框(我将其命名为counts
)。 row[0]
将成功访问您的0,因为先前的代码导致了名为0的列。
counts['result'] = counts.apply(lambda row: row[0]/(row[0] + row[1]), axis=1)