# pip3 install pandas xlrd matplotlib
import pandas as pd
df = pd.read_excel(
"FILO_DISP_COM.xls",
sheet_name="ENSEMBLE",
header=0,
index_col=1,
skiprows=[0,1,2,3,5]
)
df.head()
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
df.describe()
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
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
print(df.iloc[:,8:16].mean().plot(kind="bar", title="revenus annuels", grid=True))
AxesSubplot(0.125,0.125;0.775x0.755)
print((df.iloc[:,8:16].mean()/12).plot(kind="bar", title="revenus mensuels", grid=True))
AxesSubplot(0.125,0.125;0.775x0.755)
df2 = df.sort_values(by="Indice de Gini", ascending=False)
df2.iloc[0:30,]["Indice de Gini"]
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