请考虑以下数据帧d = {'N': [1, 2, 1, 2], 'NV': [50, 50,200,200], 'VAL' : [100,0,10,0]}df = pd.DataFrame(data = d)给 N NV VAL0 1 50 1001 2 50 02 1 200 103 2 200 0我想分组,以便为每个NV获得严格为正的VAL条目数。我希望得到的结果如下 NV VAL0 50 11 200 1有什么建议吗?
3 回答
繁星coding
TA贡献1797条经验 获得超4个赞
df.query("VAL > 0").groupby("NV").size()
或
df.groupby("NV").VAL.agg(lambda y: (y > 0).sum())
狐的传说
TA贡献1804条经验 获得超3个赞
尝试:
df[df.VAL>0].groupby('NV').size().reset_index().rename(columns={0:'VAL'})
NV VAL
0 50 1
1 200 1
饮歌长啸
TA贡献1951条经验 获得超3个赞
试试这个
df['VAL'] = df.loc[df['VAL']>0].groupby(df['NV']).transform('count') df.dropna(axis=0,inplace=True)
添加回答
举报
0/150
提交
取消