首页 > 解决方案 > Python中选定列的条件计数

问题描述

我是 Python 新手,想在数据框中创建一个新列,计算所有列中的所有活动值:

ID  2000  2001  2002  2003  ...  2019  new_column
1  active  active  nan  active  ...  nan  3
2  active  nan  nan  active  ...  nan  2

由于我有很多列,所以我不想指定每个列名。有没有一种快速的方法来计算这个数字?

非常感谢!

标签: python

解决方案


这应该这样做:

df1 = pd.DataFrame({1:[np.nan,'active','b'],2:['active','active','active'],3:[np.nan,np.nan,'active']})

带来这个:

        1       2       3
0     NaN  active     NaN
1  active  active     NaN
2       b  active  active

然后你用一个条件逐行求和:

np.sum(df1=='active', axis=1) #axis=1 tells it to do rowwise operation instead of columnwise.

输出:

0    1
1    2
2    2

推荐阅读