代码之家  ›  专栏  ›  技术社区  ›  user27074

组变量的条件计数

  •  0
  • user27074  · 技术社区  · 8 年前

    import pandas as pd
    df = pd.DataFrame({"Shop_type": [1,2,3,3,2,3,1,2,1],
                   "Self_managed" :     [True,False,False,True,True,False,False,True,False],
                   "Support_required" : [True,True,True,False,False,False,False,False,True]})
    

    我的目标是了解自我管理的商店和支持所需商店的数量,大致如下所示:

      Shop_type  Self_count  Supprt_count
    0          1           1             2
    1          2           2             1
    2          3           1             1
    

    目前,我使用以下代码来实现这一点,但它看起来很长,不专业。因为我还在学习Python,所以我想提高代码的效率。有什么想法吗?

    df1 = df[df["Self_managed"] == True]
    df1 = df1.groupby(['Shop_type']).size().reset_index(name='Self_count')
    df2 = df[df["Support_required"] == True]
    df2 = df2.groupby(['Shop_type']).size().reset_index(name='Supprt_count')
    df = df1.merge(df2, how = "outer", on="Shop_type")
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   BENY    8 年前

    df.groupby('Shop_type',as_index=False).sum()
    Out[298]: 
       Shop_type  Self_managed  Support_required
    0          1           1.0               2.0
    1          2           2.0               1.0
    2          3           1.0               1.0