使用熊猫在另一个数据框内基于SumIf计算创建新数据框

时间:2020-10-23 13:29:52

标签: python pandas dataframe countif

“我当前的数据框”如下所示:

df = pd.DataFrame({'num_legs': [2, 4, 8, 0],
                   'num_wings': [2, 0, 0, 0],
                   'num_specimen_seen': [10, 2, 1, 8]},
                  index=['falcon', 'dog', 'spider', 'fish'])
df
        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
dog            4          0                  2
spider         8          0                  1
fish           0          0                  8

现在如何在上面的列上创建一个新的数据框,作为求和运算。到目前为止,我有以下内容:

df2 = pd.DataFrame()
df2['CountIfWings'] = (df.num_wings == '2').sum()

但这不起作用,但是当我将其分配给变量时,我可以看到该值:

variable1 = (df.num_wings == '2').sum()
print(variable1)
1

有人可以协助吗?

1 个答案:

答案 0 :(得分:0)

IIUC使用DataFrame构造函数,因为输出是标量的:

df2 = pd.DataFrame({'CountIfWings':[(df.num_wings == '2').sum()]})
#if 2 are integers
df2 = pd.DataFrame({'CountIfWings':[(df.num_wings == 2).sum()]})