组变量的条件计数

时间:2018-09-05 01:47:21

标签: python pandas pandas-groupby

我有以下数据框:

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 个答案:

答案 0 :(得分:1)

似乎需要

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