根据列的计数值的数据框子集

noo*_*oob 3 python group-by subset pandas

表(df):

customer_id    Order_date 
    1       2015-01-16      
    1       2015-01-19      
    2       2014-12-21      
    2       2015-01-10      
    1       2015-01-10
    3       2018-01-18
    3       2017-03-04
    4       2019-11-05
    4       2010-01-01
    3       2019-02-03
    3       2020-01-01
    3       2018-01-01
Run Code Online (Sandbox Code Playgroud)

需要的输出: df 的一个子集,其中 customer_IDs 有超过 3 个 order_dates。(跳过 2,4 和 5 客户 ID,因为他们的 order_dates 少于 3 个)

 Customer_id  Number_of_Order_dates
     1          3
     3          5
Run Code Online (Sandbox Code Playgroud)

我试过 groupby 但它没有工作来创建一个子集。请帮忙。

到目前为止尝试过的代码失败了:

df[df['days'].count()>3]
Run Code Online (Sandbox Code Playgroud)

还有一个我试过的,这是不正确的:

 df1=df.groupby('customer_id')['order_date'].count()
 df[df1.iloc[:,1]]
Run Code Online (Sandbox Code Playgroud)

WeN*_*Ben 6

国际大学联盟

df.groupby('customer_id')['Order_date'].nunique().loc[lambda x : x>=3].reset_index()
Out[94]: 
   customer_id  Order_date
0            1           3
1            3           5
Run Code Online (Sandbox Code Playgroud)