У меня есть следующий фрейм данных:
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]})
Моя цель - получить представление о количестве магазинов Self_managed и Support_required, которые выглядят примерно так:
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")