我有以下数据框:
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")
答案 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