1

pandasデータフレームでgroupbyを実行して、各場所と各日付にいくつの行があるかを確認しました。

agg_count = df.groupby(['date', 'location']).count()

ここで、特定の条件を満たすこの新しいデータフレームの行を確認します。たとえば、カウントが50を超えています。これらの行を取得するために、この巨大なデータフレームを効率的に反復処理するにはどうすればよいですか?

4

1 に答える 1

0

このデータから始める

In [275]: df = pd.DataFrame({'date': [20130101, 20130101, 20130102], 'location': ['a', 'a', 'c']})

In [276]: df
Out[276]:
       date location
0  20130101        a
1  20130101        a
2  20130102        c

これにより、カウントが1より大きい列が選択されます

In [277]: df.groupby(['date', 'location']).apply(lambda sdf: sdf if len(sdf) > 1 else None)
Out[277]:
                         date location
date     location
20130101 a        0  20130101        a
                  1  20130101        a

マルチインデックスを下にドロップ

In [278]: df.groupby(['date', 'location']).apply(lambda sdf: sdf if len(sdf) > 1 else None).reset_index(drop=True)
Out[278]:
       date location
0  20130101        a
1  20130101        a
于 2013-03-26T13:52:35.690 に答える