从数据框使用条件逻辑创建变量

时间:2019-07-30 19:17:47

标签: python python-3.x pandas

我有一个数据框,其中有一列称为“成功”(以及其他)。在此列中,我们只有0和1值。现在,我想计算每个值出现多少次。

我尝试了以下命令:sdf.groupby('success').sum(),但它只为我提供了一个表,该表在1个视图中具有唯一计数。 enter image description here

由于我需要对0和1的各个频率进行数学运算,因此需要2个变量,因此需要分别进行计算。例子:

col1=6100
col2=5878

c=col1/(col1+col2)

该怎么做?

1 个答案:

答案 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)