Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从dataframe创建具有条件逻辑的变量_Python_Python 3.x_Pandas - Fatal编程技术网

Python 从dataframe创建具有条件逻辑的变量

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来计算列中每个值出现的

我有一个数据框,其中有一个列名为“success”(以及其他列)。在该列中,我们只有0和1个值。现在,我想计算每个值出现的次数

我尝试了这个命令:
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)
。谢谢,但当我运行您的两行时,它不会返回任何内容:当您说它不会返回任何内容时,您的意思是有错误吗?或者控制台上没有打印任何内容?如果没有错误,请在运行第一行后尝试打印(计数)。