Python Pandas:计算每行数据帧中特定值的频率?

时间:2015-11-20 09:25:47

标签: python pandas sum row

我有一个数据帧df:

domain               country     out1 out2 out3
oranjeslag.nl           NL          1    0   NaN    
pietervaartjes.nl       NL          1    1    0
andreaputting.com.au    AU          NaN  1    0 
michaelcardillo.com     US          0    0    NaN

我想定义两列sum_0和sum_1,并计算每行的列(out1,out2,out3)中的0和1的数量。所以预期的结果将是:

domain               country     out1 out2 out3   sum_0  sum_1
oranjeslag.nl           NL          1    0   NaN    1      1
pietervaartjes.nl       NL          1    1    0     1      2
andreaputting.com.au    AU          NaN  1    0     1      1
michaelcardillo.com     US          0    0    NaN   2      0

我有这个代码用于计算1的数量,但我不知道如何计算0的数量。

df['sum_1'] = df[['out_1','out_2','out_3']].sum(axis=1)

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:3)

您可以针对每种情况致电sum1条件很简单sum axis=1,第二种情况可以将df与{{{ 1}}值,然后像以前一样调用0

sum

答案 1 :(得分:1)

我愿意:

df["sum_0"] = df.apply(lambda row: sum(row[0:3]==0) ,axis=1)