如何用自己的标准做熊猫分组?

请考虑以下数据帧


d = {'N': [1, 2, 1, 2], 'NV': [50, 50,200,200], 'VAL' : [100,0,10,0]}

df = pd.DataFrame(data = d)


   N  NV  VAL

0  1  50  100

1  2  50    0

2  1  200  10

3  2  200   0

我想分组,以便为每个NV获得严格为正的VAL条目数。我希望得到的结果如下


   NV  VAL

0  50   1

1  200  1

有什么建议吗?


茅侃侃
浏览 69回答 3
3回答

繁星coding

df.query("VAL > 0").groupby("NV").size()或df.groupby("NV").VAL.agg(lambda y: (y > 0).sum())

狐的传说

尝试:df[df.VAL>0].groupby('NV').size().reset_index().rename(columns={0:'VAL'})    NV  VAL0   50    11  200    1

饮歌长啸

试试这个df['VAL'] = df.loc[df['VAL']>0].groupby(df['NV']).transform('count') df.dropna(axis=0,inplace=True)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python