source des données: http://www.collectivites-locales.gouv.fr/
In [3]:
import pandas as pd
import os
curdir = os.path.abspath('./..')
In [44]:
df = pd.read_csv(os.path.join(curdir, 'scraped_data', 'epci_all.csv'))
df[['year', 'net_profit', 'staff_costs', 'financial_costs', 'debt_repayments', 'allocation']].head(n=20)
Out[44]:
In [7]:
df.columns
Out[7]:
In [8]:
df['debt_ratio'] = df['debt_annual_costs']/df['operating_revenues']
df['staff_costs_ratio'] = df['staff_costs']/df['operating_revenues']
In [16]:
print "Nombre d'EPCI crawlés par an"
df.groupby('year').year.count()
Out[16]:
Visiblement, certains codes d'EPCI définis dans le fichier insee ne sont pas les mêmes que ceux utilisé dans l'url sur le site des collectivités.
Exemple:
On constate donc un code siren différent.
In [19]:
xls = pd.ExcelFile(os.path.join(curdir, 'data', 'epci-au-01-01-2013.xls')
data = xls.parse('Composition communale des EPCI')
In [27]:
data['siren'] = data[u'Établissement public à fiscalité propre'][1:]
data['siren'].dropna().unique().size # there is a strange epci ZZZZZZZZZZZZZZ
Out[27]:
In [37]:
len(set(df['siren'].apply(unicode).unique()).symmetric_difference(data['siren'].unique()))
Out[37]:
In [40]:
plt.figure(figsize=(12,12));
df[['debt_ratio', 'staff_costs_ratio']].boxplot()
df[['debt_ratio', 'staff_costs_ratio', 'name']].head(20)
Out[40]:
In [39]:
# Biggest property tax rate
_df = df.sort(columns='debt_ratio', ascending=False)
_df[['year', 'debt_ratio', 'name']].head(n=20)
Out[39]:
In [ ]:
In [40]:
In [ ]: