我有以下数据框:
df
id grp1 grp2
0 1 a NaN
1 2 b d
我需要创建一个新列,其中包含grp1和grp2列中的值计数。如下所示
df
id grp1 grp2 grp_count
0 1 a NaN 1
1 2 b d 2
实现此目标的一种方法是使用pandas apply函数,该函数逐行获取计数迭代,这将影响性能。
有没有一种方法可以不用熊猫应用?
答案 0 :(得分:2)
Pandas DataFrame count
方法默认情况下忽略nan
值,因此:
df['grp_count'] = df[['grp1', 'grp2']].count(axis=1)