In [1]:
# pip3 install pandas xlrd matplotlib
import pandas as pd
In [7]:
df = pd.read_excel(
    "FILO_DISP_COM.xls", 
    sheet_name="ENSEMBLE",
    header=0,
    index_col=1,
    skiprows=[0,1,2,3,5]
)
df.head()
Out[7]:
Code géographique Nbre de ménages fiscaux Nbre de personnes dans les ménages fiscaux Nbre d'unités de consommation dans les ménages fiscaux 1er quartile (€) Médiane (€) 3e quartile (€) Écart interquartile (€) 1er décile (€) 2e décile (€) ... dont part des indemnités chômage (%) dont part des salaires, traitements hors chômage (%) dont part des revenus des activités non salariées (%) Part des pensions, retraites et rentes (%) Part des revenus du patrimoine et autres revenus (%) Part de l'ensemble des prestations sociales (%) dont part des prestations familiales (%) dont part des minima sociaux (%) dont part des prestations logement (%) Part des impôts (%)
Libellé géographique
L'Abergement-Clémenciat 01001 308 801.0 527.10 NaN 22228.000000 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
L'Abergement-de-Varey 01002 100 245.5 162.45 NaN 22883.333333 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Ambérieu-en-Bugey 01004 6216 13917.0 9543.70 14314.0 19735.200000 26194.666667 11880.666667 10398.571429 13079.0 ... 3.3 65.6 3.9 26.9 9.5 6.7 2.7 2.0 2.0 -15.8
Ambérieux-en-Dombes 01005 624 1671.5 1081.95 NaN 23182.666667 NaN NaN NaN NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
Ambronay 01007 1044 2635.5 1732.75 17564.0 21986.500000 27836.666667 10272.666667 13620.666667 16568.0 ... 2.5 71.2 2.6 26.7 8.1 4.0 2.4 0.8 0.8 -15.1

5 rows × 30 columns

In [8]:
df.describe()
Out[8]:
Nbre de ménages fiscaux Nbre de personnes dans les ménages fiscaux Nbre d'unités de consommation dans les ménages fiscaux 1er quartile (€) Médiane (€) 3e quartile (€) Écart interquartile (€) 1er décile (€) 2e décile (€) 3e décile (€) ... dont part des indemnités chômage (%) dont part des salaires, traitements hors chômage (%) dont part des revenus des activités non salariées (%) Part des pensions, retraites et rentes (%) Part des revenus du patrimoine et autres revenus (%) Part de l'ensemble des prestations sociales (%) dont part des prestations familiales (%) dont part des minima sociaux (%) dont part des prestations logement (%) Part des impôts (%)
count 3.225200e+04 3.225200e+04 3.225200e+04 5257.000000 32252.000000 5257.000000 5257.000000 5257.000000 5257.000000 5257.000000 ... 5257.000000 5257.000000 5257.000000 5257.000000 5257.000000 5257.000000 5257.000000 5257.000000 5257.000000 5257.000000
mean 9.002475e+02 2.080761e+03 1.418240e+03 16089.863030 20633.444270 27794.041884 11704.178854 12064.309047 14928.428996 17177.716755 ... 3.167472 62.593647 5.154879 29.879076 10.053472 5.196253 2.251341 1.604071 1.340517 -16.046224
std 7.293511e+03 1.518587e+04 1.074782e+04 2558.171842 2927.046955 5340.510792 3567.073183 1977.934759 2379.734501 2729.879074 ... 0.746916 11.116935 2.205029 7.537736 4.668555 2.758318 0.842686 1.322009 0.878273 3.155266
min 3.200000e+01 7.500000e+01 6.150000e+01 8075.664251 10157.083333 15384.333333 6390.000000 5712.500000 7452.758621 8512.828000 ... 1.300000 13.600000 0.600000 7.500000 2.800000 0.600000 0.300000 0.100000 0.100000 -39.600000
25% 1.040000e+02 2.490000e+02 1.681500e+02 14355.000000 18797.614286 24420.000000 9709.500000 10623.333333 13318.000000 15354.000000 ... 2.600000 55.500000 3.600000 24.900000 7.700000 3.400000 1.700000 0.800000 0.700000 -17.600000
50% 2.120000e+02 5.190000e+02 3.475000e+02 15961.600000 20198.214286 26568.461538 10861.000000 12088.000000 14852.000000 17022.173913 ... 3.100000 63.300000 4.900000 29.100000 9.300000 4.600000 2.200000 1.200000 1.100000 -15.500000
75% 5.080000e+02 1.241000e+03 8.318125e+02 17628.000000 21938.898810 29843.600000 12561.733333 13455.185185 16433.466667 18772.903226 ... 3.600000 70.500000 6.300000 34.000000 11.300000 6.200000 2.700000 2.000000 1.700000 -14.000000
max 1.030953e+06 2.096399e+06 1.500666e+06 28807.000000 46156.000000 73721.666667 49888.809524 20274.761905 26500.000000 32830.800000 ... 9.000000 96.100000 26.400000 68.100000 70.600000 28.000000 8.100000 14.500000 8.400000 -4.700000

8 rows × 29 columns

In [54]:
print(df.iloc[:,8:16].mean())
1er décile (€)    12064.309047
2e décile (€)     14928.428996
3e décile (€)     17177.716755
4e décile (€)     19237.312999
6e décile (€)     23515.999045
7e décile (€)     26163.756935
8e décile (€)     29782.823174
9e décile (€)     36217.930962
dtype: float64
In [57]:
print(df.iloc[:,8:16].mean().plot(kind="bar", title="revenus annuels", grid=True))
AxesSubplot(0.125,0.125;0.775x0.755)
In [58]:
print((df.iloc[:,8:16].mean()/12).plot(kind="bar", title="revenus mensuels", grid=True))
AxesSubplot(0.125,0.125;0.775x0.755)
In [44]:
df2 = df.sort_values(by="Indice de Gini", ascending=False)
df2.iloc[0:30,]["Indice de Gini"]
Out[44]:
Libellé géographique
Paris 7e Arrondissement     0.529859
Paris 6e Arrondissement     0.494262
Paris 16e Arrondissement    0.492540
Paris 8e Arrondissement     0.480449
Neuilly-sur-Seine           0.477613
Paris 1er Arrondissement    0.462938
Ferney-Voltaire             0.440434
Paris 17e Arrondissement    0.439884
Paris 3e Arrondissement     0.437138
Paris 2e Arrondissement     0.436749
Paris 4e Arrondissement     0.429267
Prévessin-Moëns             0.428811
Paris                       0.425874
Veyrier-du-Lac              0.425221
Ramatuelle                  0.423017
Le Vésinet                  0.411753
Paris 5e Arrondissement     0.410132
Ornex                       0.409172
Saint-Genis-Pouilly         0.408779
Le Touquet-Paris-Plage      0.408160
Gaillard                    0.407640
Saint-Tropez                0.404223
Divonne-les-Bains           0.403497
Paris 9e Arrondissement     0.401696
Saint-Julien-en-Genevois    0.401373
Saint-Cyr-au-Mont-d'Or      0.394604
Thoiry                      0.393348
Cassis                      0.389627
Collonges-sous-Salève       0.388632
Ambilly                     0.387890
Name: Indice de Gini, dtype: float64
In [ ]: