在迭代pandas groupby中的组时删除行

时间:2016-06-17 09:12:03

标签: python pandas

表示数据集:

te = {'A':[1,1,1,2,2,2],'B':[0,3,6,0,5,7]}
df = DataFrame(te, index = range(6))
vol = 0

我想在groupby函数之后将A和它分组通过组:

for name, group in df.groupby('A'):
    for i, row in group.iterrows():
        if row['B'] <= 0:
            group = group.drop(i)
            vol += row['A']

不知何故,我的代码无效,数据框df仍然与for循环之前相同。我需要使用groupby()方法,因为数据集的行将通过此外部的另一个循环增加,是否有任何方法可以从groupby中删除组中的行?或者如何在将row['A']

相加的同时将其过滤掉

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以单独做两个操作而不用循环:

vol = df.A[df.B <= 0].sum()
df = df[df.B > 0]  # equivalent to drop