)

quantite_bdf = pd.DataFrame()
produits = ['carburants', 'diesel', 'essence']
for element in produits:
    quantite = pd.DataFrame.from_csv(os.path.join(assets_directory,
            'openfisca_france_indirect_taxation', 'assets', 'quantites',
            'quantites_{}_consommees_bdf.csv'.format(element)), sep = ',', header = -1)
    quantite.rename(columns = {1: '{} bdf'.format(element)}, inplace = True)
    quantite.index = quantite.index.str.replace('en milliers de m3 en ', '')
    quantite = quantite.sort_index()
    quantite_bdf = concat([quantite, quantite_bdf], axis = 1)

# Import des fichiers csv donnant les quantités agrégées d'après la comptabilité nationale.
quantite_carbu_vp_france = pd.read_csv(os.path.join(assets_directory,
        'openfisca_france_indirect_taxation', 'assets', 'quantites',
        'quantite_carbu_vp_france.csv'), sep = ';')
quantite_carbu_vp_france['Unnamed: 0'] = quantite_carbu_vp_france['Unnamed: 0'].astype(str)
quantite_carbu_vp_france = quantite_carbu_vp_france.set_index('Unnamed: 0')
quantite_carbu_vp_france.rename(columns = {'essence': 'essence agregat'}, inplace = True)
quantite_carbu_vp_france.rename(columns = {'diesel': 'diesel agregat'}, inplace = True)
quantite_carbu_vp_france['carburants agregat'] = quantite_carbu_vp_france.sum(axis = 1)

comparaison_bdf_agregats = concat([quantite_carbu_vp_france, quantite_bdf], axis = 1)
comparaison_bdf_agregats = comparaison_bdf_agregats.dropna()

# Créer des graphiques pour comparer les consommations obtenues via Bdf vis-à-vis de la comptabilité nationale
graph_builder_line(comparaison_bdf_agregats[['essence agregat'] + ['essence bdf']])
graph_builder_line(comparaison_bdf_agregats[['diesel agregat'] + ['diesel bdf']])
graph_builder_line(comparaison_bdf_agregats[['carburants agregat'] + ['carburants bdf']])
예제 #2
0
            pivot_table = pandas.DataFrame()
            for values in simulated_variables:
                pivot_table = pandas.concat([
                    pivot_table,
                    survey_scenario.compute_pivot_table(
                        values=[values], columns=['niveau_vie_decile'])
                ])
            df = pivot_table.T
            df.rename(columns={
                'ticpe_totale':
                'ticpe totale {}'.format(year),
                'diesel_ticpe':
                'ticpe diesel {}'.format(year),
                'essence_ticpe':
                'ticpe essence {}'.format(year),
                'depenses_carburants':
                'depenses carburants {}'.format(year),
                'depenses_diesel':
                'depenses diesel {}'.format(year),
                'depenses_essence':
                'depenses essence {}'.format(year)
            },
                      inplace=True)

            if depenses is not None:
                depenses = concat([depenses, df[element + '{}'.format(year)]],
                                  axis=1)
            else:
                depenses = df[element + '{}'.format(year)]
        graph_builder_line(depenses)
    depenses_bdf = concat([depenses, depenses_bdf], axis=1)

depenses_bdf.index = depenses_bdf.index.astype(int)

# Import des fichiers csv donnant les montants agrégés des mêmes postes d'après la comptabilité nationale
parametres_fiscalite_file_path = os.path.join(
    assets_directory, 'openfisca_france_indirect_taxation', 'assets',
    'legislation', 'Parametres fiscalite indirecte.xls')
masses_cn_data_frame = pd.read_excel(parametres_fiscalite_file_path,
                                     sheetname="consommation_CN")

masses_cn_carburants = masses_cn_data_frame[masses_cn_data_frame['Fonction'] ==
                                            'Carburants et lubrifiants']
masses_cn_carburants = masses_cn_carburants.transpose()
masses_cn_carburants.rename(columns={76: 'carburants agregat'}, inplace=True)

masses_cn_transports = masses_cn_data_frame[masses_cn_data_frame['Fonction'] ==
                                            'Transports']
masses_cn_transports = masses_cn_transports.transpose()
masses_cn_transports.rename(columns={69: 'transports agregat'}, inplace=True)

comparaison_bdf_agregats = concat(
    [depenses_bdf, masses_cn_carburants, masses_cn_transports], axis=1)
comparaison_bdf_agregats = comparaison_bdf_agregats.dropna()

# Créer des graphiques pour comparer les consommations obtenues via Bdf vis-à-vis de la comptabilité nationale
graph_builder_line(comparaison_bdf_agregats[['carburants agregat'] +
                                            ['carburants bdf']])
graph_builder_line(comparaison_bdf_agregats[['transports agregat'] +
                                            ['transports bdf']])
depenses_ticpe_pour_1000_euros_carbu = pd.DataFrame(index = index, columns = columns)

for element in columns:
    if element == 'si seulement vehicules essence':
        dies = 0
    else:
        dies = 1
    if element == 'si seulement vehicules diesel':
        ess = 0
    else:
        ess = 1
    for year in range(2000, 2014):
        year = year
        simulation = base.tax_benefit_system.new_scenario().init_single_entity(
            period = year,
            personne_de_reference = dict(
                birth = datetime.date(year - 40, 1, 1),
                ),
            menage = dict(
                depenses_carburants = 1000,
                veh_essence = ess,
                veh_diesel = dies,
                ),
            ).new_simulation(debug = True)

        depenses_ticpe_pour_1000_euros_carbu.loc[depenses_ticpe_pour_1000_euros_carbu.index == year, element] = \
            simulation.calculate('ticpe_totale')

graph_builder_line(depenses_ticpe_pour_1000_euros_carbu)
save_dataframe_to_graph(depenses_ticpe_pour_1000_euros_carbu, 'cas_type_1000€_carbu.csv')
comparaison_vehicules["diesel bdf"] = 0
comparaison_vehicules["essence bdf"] = 0
comparaison_vehicules["total bdf"] = 0

# Sélection des données Budget des Familles utilisées et organisation de la dataframe
for year in [2000, 2005, 2011]:
    aggregates_data_frame = get_input_data_frame(year)
    df_nombre_vehicules_bdf = aggregates_data_frame[["veh_diesel"] + ["veh_essence"] + ["pondmen"]]
    nombre_vehicules_diesel_bdf = (
        df_nombre_vehicules_bdf["veh_diesel"] * df_nombre_vehicules_bdf["pondmen"]
    ).sum() / 1000
    comparaison_vehicules.loc[comparaison_vehicules.index == year, "diesel bdf"] = nombre_vehicules_diesel_bdf

    nombre_vehicules_essence_bdf = (
        df_nombre_vehicules_bdf["veh_essence"] * df_nombre_vehicules_bdf["pondmen"]
    ).sum() / 1000
    comparaison_vehicules.loc[comparaison_vehicules.index == year, "essence bdf"] = nombre_vehicules_essence_bdf

    nombre_vehicules_total_bdf = (
        (df_nombre_vehicules_bdf["veh_essence"] + df_nombre_vehicules_bdf["veh_diesel"])
        * df_nombre_vehicules_bdf["pondmen"]
    ).sum() / 1000
    comparaison_vehicules.loc[comparaison_vehicules.index == year, "total bdf"] = nombre_vehicules_total_bdf

comparaison_vehicules = comparaison_vehicules[comparaison_vehicules["total bdf"] != 0]

# Réalisation de graphiques
graph_builder_line(comparaison_vehicules[["total bdf"] + ["total agregats"]])
graph_builder_line(comparaison_vehicules[["diesel bdf"] + ["diesel agregats"]])
graph_builder_line(comparaison_vehicules[["essence bdf"] + ["essence agregats"]])
    depenses.index = depenses.index.str.replace('en ', '')
    depenses = depenses.sort_index()
    depenses_bdf = concat([depenses, depenses_bdf], axis = 1)

depenses_bdf.index = depenses_bdf.index.astype(int)

# Import des fichiers csv donnant les montants agrégés des mêmes postes d'après la comptabilité nationale
parametres_fiscalite_file_path = os.path.join(
    assets_directory,
    'openfisca_france_indirect_taxation',
    'assets',
    'legislation',
    'Parametres fiscalite indirecte.xls'
    )
masses_cn_data_frame = pd.read_excel(parametres_fiscalite_file_path, sheetname = "consommation_CN")

masses_cn_carburants = masses_cn_data_frame[masses_cn_data_frame['Fonction'] == 'Carburants et lubrifiants']
masses_cn_carburants = masses_cn_carburants.transpose()
masses_cn_carburants.rename(columns = {76: 'carburants agregat'}, inplace = True)

masses_cn_transports = masses_cn_data_frame[masses_cn_data_frame['Fonction'] == 'Transports']
masses_cn_transports = masses_cn_transports.transpose()
masses_cn_transports.rename(columns = {69: 'transports agregat'}, inplace = True)

comparaison_bdf_agregats = concat([depenses_bdf, masses_cn_carburants, masses_cn_transports], axis = 1)
comparaison_bdf_agregats = comparaison_bdf_agregats.dropna()

# Créer des graphiques pour comparer les consommations obtenues via Bdf vis-à-vis de la comptabilité nationale
graph_builder_line(comparaison_bdf_agregats[['carburants agregat'] + ['carburants bdf']])
graph_builder_line(comparaison_bdf_agregats[['transports agregat'] + ['transports bdf']])
            part_revtot = pandas.DataFrame()
            part_revtot['part ' + element.replace('_', ' ') + ' revtot {}'.format(year)] = \
                df[element] / df['revtot']

            part_rev_loyerimput = pandas.DataFrame()
            part_rev_loyerimput['part ' + element.replace('_', ' ') + ' rev disp loyerimput {}'.format(year)] = \
                df[element] / df['rev_disp_loyerimput']

            part_depenses = pandas.DataFrame()
            part_depenses['part ' + element.replace('_', ' ') + ' depenses {}'.format(year)] = \
                df[element] / df['somme_coicop12_conso']

            if revtot is not None:
                revtot = concat([revtot, part_revtot], axis = 1)
            else:
                revtot = part_revtot

            if rev_disp_loyerimput is not None:
                rev_disp_loyerimput = concat([rev_disp_loyerimput, part_rev_loyerimput], axis = 1)
            else:
                rev_disp_loyerimput = part_rev_loyerimput

            if depenses is not None:
                depenses = concat([depenses, part_depenses], axis = 1)
            else:
                depenses = part_depenses

        graph_builder_line(revtot)
        graph_builder_line(rev_disp_loyerimput)
        graph_builder_line(depenses)
    # Le but est de construire un graphique représentant les 3 années pour chaque variable. On fait donc une boucle
    # dans une boucle.
    to_graph = ['ticpe totale ', 'ticpe diesel ', 'ticpe essence ', 'depenses carburants ', 'depenses diesel ',
                'depenses essence ']
    for element in to_graph:
        depenses = None
        for year in [2000, 2005, 2011]:
            survey_scenario = SurveyScenario.create(year = year)
            pivot_table = pandas.DataFrame()
            for values in simulated_variables:
                pivot_table = pandas.concat([
                    pivot_table,
                    survey_scenario.compute_pivot_table(values = [values], columns = ['niveau_vie_decile'])
                    ])
            df = pivot_table.T
            df.rename(columns = {'ticpe_totale': 'ticpe totale {}'.format(year),
                'diesel_ticpe': 'ticpe diesel {}'.format(year),
                'essence_ticpe': 'ticpe essence {}'.format(year),
                'depenses_carburants': 'depenses carburants {}'.format(year),
                'depenses_diesel': 'depenses diesel {}'.format(year),
                'depenses_essence': 'depenses essence {}'.format(year)},
                inplace = True)

            if depenses is not None:
                depenses = concat(
                    [depenses, df[element + '{}'.format(year)]], axis = 1)
            else:
                depenses = df[element + '{}'.format(year)]
        graph_builder_line(depenses)
    quantite.index = quantite.index.str.replace('en milliers de m3 en ', '')
    quantite = quantite.sort_index()
    quantite_bdf = concat([quantite, quantite_bdf], axis=1)

# Import des fichiers csv donnant les quantités agrégées d'après la comptabilité nationale.
quantite_carbu_vp_france = pd.read_csv(os.path.join(
    assets_directory, 'openfisca_france_indirect_taxation', 'assets',
    'quantites', 'quantite_carbu_vp_france.csv'),
                                       sep=';')
quantite_carbu_vp_france['Unnamed: 0'] = quantite_carbu_vp_france[
    'Unnamed: 0'].astype(str)
quantite_carbu_vp_france = quantite_carbu_vp_france.set_index('Unnamed: 0')
quantite_carbu_vp_france.rename(columns={'essence': 'essence agregat'},
                                inplace=True)
quantite_carbu_vp_france.rename(columns={'diesel': 'diesel agregat'},
                                inplace=True)
quantite_carbu_vp_france['carburants agregat'] = quantite_carbu_vp_france.sum(
    axis=1)

comparaison_bdf_agregats = concat([quantite_carbu_vp_france, quantite_bdf],
                                  axis=1)
comparaison_bdf_agregats = comparaison_bdf_agregats.dropna()

# Créer des graphiques pour comparer les consommations obtenues via Bdf vis-à-vis de la comptabilité nationale
graph_builder_line(comparaison_bdf_agregats[['essence agregat'] +
                                            ['essence bdf']])
graph_builder_line(comparaison_bdf_agregats[['diesel agregat'] +
                                            ['diesel bdf']])
graph_builder_line(comparaison_bdf_agregats[['carburants agregat'] +
                                            ['carburants bdf']])
예제 #10
0
    df_nombre_vehicules_bdf = aggregates_data_frame[['veh_diesel'] +
                                                    ['veh_essence'] +
                                                    ['pondmen']]
    nombre_vehicules_diesel_bdf = (
        df_nombre_vehicules_bdf['veh_diesel'] *
        df_nombre_vehicules_bdf['pondmen']).sum() / 1000
    comparaison_vehicules.loc[comparaison_vehicules.index == year, 'diesel bdf'] = \
        nombre_vehicules_diesel_bdf

    nombre_vehicules_essence_bdf = (
        df_nombre_vehicules_bdf['veh_essence'] *
        df_nombre_vehicules_bdf['pondmen']).sum() / 1000
    comparaison_vehicules.loc[comparaison_vehicules.index == year, 'essence bdf'] = \
        nombre_vehicules_essence_bdf

    nombre_vehicules_total_bdf = (
        (df_nombre_vehicules_bdf['veh_essence'] +
         df_nombre_vehicules_bdf['veh_diesel']) *
        df_nombre_vehicules_bdf['pondmen']).sum() / 1000
    comparaison_vehicules.loc[comparaison_vehicules.index == year, 'total bdf'] = \
        nombre_vehicules_total_bdf

comparaison_vehicules = comparaison_vehicules[
    comparaison_vehicules['total bdf'] != 0]

# Réalisation de graphiques
graph_builder_line(comparaison_vehicules[['total bdf'] + ['total agregats']])
graph_builder_line(comparaison_vehicules[['diesel bdf'] + ['diesel agregats']])
graph_builder_line(comparaison_vehicules[['essence bdf'] +
                                         ['essence agregats']])