請考慮以下數據幀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
提交
取消
