熊猫:按发生次数过滤分组的系列

时间:2020-09-24 13:18:49

标签: python pandas dataframe

我有一个数据框,我使用groupby进行进一步的数据聚合:

import pandas as pd
test_df = pd.DataFrame(data={"id": [1,2,2,3,3], "review_id": [1,2,3,4,5], "text": ["good", "bad", "nice", "awesome", "dont buy"]})
grouped_df = test_df.groupby(by=["id", "review_id"]).apply(lambda x: [x["text"]])

请给我以下系列:

    id  review_id
1   1                [[good]]
2   2                 [[bad]]
    3                [[nice]]
3   4             [[awesome]]
    5            [[dont buy]]
dtype: object

现在我需要一种方法,如何进一步简化本系列,因为我只希望ID超过1条评论。所以我要删除 id 1 。 我只是不知道如何使用aggregate()apply()来完成这项任务。

我该如何实现?

1 个答案:

答案 0 :(得分:1)

让我们做transform

out = grouped_df[grouped_df.groupby(level=0).transform('size')>1]
id  review_id
2   2                 [[bad]]
    3                [[nice]]
3   4             [[awesome]]
    5            [[dont buy]]
dtype: object

或者让我们做duplicated

out = grouped_df[grouped_df.index.get_level_values(0).duplicated(keep=False)]
id  review_id
2   2                 [[bad]]
    3                [[nice]]
3   4             [[awesome]]
    5            [[dont buy]]
dtype: object