Python 从dataframe创建具有条件逻辑的变量
我有一个数据框,其中有一个列名为“success”(以及其他列)。在该列中,我们只有0和1个值。现在,我想计算每个值出现的次数 我尝试了这个命令:Python 从dataframe创建具有条件逻辑的变量,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个数据框,其中有一个列名为“success”(以及其他列)。在该列中,我们只有0和1个值。现在,我想计算每个值出现的次数 我尝试了这个命令:sdf.groupby('success').sum(),但它只给我一个在1视图中具有唯一计数的表。 因为我需要对0和1的单独频率进行数学计算,所以我需要在两个变量中分别计算。Exmaple: col1=6100 col2=5878 c=col1/(col1+col2) 如何做到这一点?您可以使用value\u counts来计算列中每个值出现的
sdf.groupby('success').sum()
,但它只给我一个在1视图中具有唯一计数的表。
因为我需要对0和1的单独频率进行数学计算,所以我需要在两个变量中分别计算。Exmaple:
col1=6100
col2=5878
c=col1/(col1+col2)
如何做到这一点?您可以使用
value\u counts
来计算列中每个值出现的次数。然后,您可以将生成的序列转换为数据帧,并将其转置以获得列标题形式的值
counts=pd.DataFrame(sdf['success'].value_counts()).transpose()
让我知道这是否适合你
要进行计算,您可以尝试将lambda
函数应用于生成的数据帧(我将其命名为counts
)<代码>行[0]将访问您的成功计数0,因为前面的代码生成了一个名为0的列
counts['result']=counts.apply(lambda行:行[0]/(行[0]+行[1]),轴=1)
您可以使用value\u counts
计算列中每个值出现的次数。然后,您可以将生成的序列转换为数据帧,并将其转置以获得列标题形式的值
counts=pd.DataFrame(sdf['success'].value_counts()).transpose()
让我知道这是否适合你
要进行计算,您可以尝试将lambda
函数应用于生成的数据帧(我将其命名为counts
)<代码>行[0]将访问您的成功计数0,因为前面的代码生成了一个名为0的列
counts['result']=counts.apply(lambda行:行[0]/(行[0]+行[1]),轴=1)
欢迎来到SO。请检查并创建一个,其中包括一个示例输入和所需的输出。@user3483203很抱歉,我希望我更正了它欢迎这么做。请检查并创建一个,其中包括一个示例输入和所需的输出。@user3483203很抱歉,我希望我更正了它谢谢您,但当我运行您的两行时,它没有返回任何内容:当您说它没有返回任何内容时,您的意思是有错误吗?或者控制台上没有打印任何内容?如果没有错误,请在运行第一行后尝试print(counts)
。谢谢,但当我运行您的两行时,它不会返回任何内容:当您说它不会返回任何内容时,您的意思是有错误吗?或者控制台上没有打印任何内容?如果没有错误,请在运行第一行后尝试打印(计数)。