我正试图根据充当标志的另一列来获得id的唯一计数。
但是,当使用下面的代码时:
df['id_flag_0']=np.where(df['flag']==0,df['id'],np.nan)
df['id_flag_1']=np.where(df['flag']==1,df['id'],np.nan)
grp=df.groupby(other_columns+'flag')
result=grp['id','id_flag_0','id_flag_1'].nunique(dropna=True)
grp2=df.groupby(other_columns)
result2=grp2['id','id_flag_0','id_flag_1'].nunique(dropna=True)
结果给出:
flag | id | id_flag_0 | id_flag_1
0 | 12 | 12 | 1
1 | 10 | 1 | 10
哪个表示正在计算NaN
Result2给出:
| id | id_flag_0 | id_flag_1
| 15 | 13 | 11
还表明正在计算NaN
我实际需要的结果是:
| id | id_flag_0 | id_flag_1
| 15 | 12 | 10
我应该传递np.nan以外的其他内容吗?
我在做什么错了?
答案 0 :(得分:0)
我刚刚意识到自己搞砸了。
我还有一个groupby和sum()将nan转换为0