Voici à quoi ressemble mon dataframe:

company_name country_code state_code software finance commerce etc......
google       USA           CA          1        0          0
jimmy        GBR           unknown     0        0          1

Je souhaiterais pouvoir regrouper l'industrie d'une entreprise avec son code d'état. Par exemple, je voudrais avoir le nombre total de sociétés de logiciels dans un État, etc. (par exemple 200 sociétés de logiciels en Californie, 100 sociétés financières à New York).

Je compte actuellement le nombre total d'entreprises dans chaque État en utilisant:

 usa_df['state_code'].value_counts()

Mais je ne peux pas comprendre comment regrouper le nombre de chaque type d'industrie dans chaque État individuel.

-1
user7057659 11 avril 2018 à 16:31

3 réponses

Meilleure réponse

Si les 1 et les 0 sont des drapeaux booléens pour chaque catégorie, vous devez simplement avoir besoin de la somme.

df[df.country_code == 'USA'].groupby('state_code').sum().reset_index()

#  state_code  commerce  finance  software
#0         CA         0        0         1
1
ALollz 11 avril 2018 à 13:37

Cela peut vous aider:

result_dataframe = dataframe_name.groupby('state_code ').sum()
0
Piyush S. Wanare 11 avril 2018 à 13:58
df.groupby(['state_code']).agg({'software' : 'sum', 'finance' : 'sum', ...})

Cela regroupera par state_code et résumera le nombre de «logiciels», «finances», etc. dans chaque groupe.

Pourrait également faire un tableau croisé dynamique:

df.pivot_table(index = 'state_code', columns = ['software', 'finance', ...], aggfunc = 'sum')
1
Ian Thompson 11 avril 2018 à 13:37