'somme_coicop12',
        'rev_disponible'
        ]
    # Merge des deux listes
    var_to_be_simulated += list_coicop12

    p = dict()
    df_to_graph = None
    for year in [2000, 2005, 2011]:
        simulation_data_frame = simulate_df(var_to_be_simulated = var_to_be_simulated, year = year)
        annee = simulation_data_frame.apply(lambda row: year, axis = 1)
        simulation_data_frame["year"] = annee
        if year == 2011:
            simulation_data_frame.niveau_vie_decile[simulation_data_frame.decuc == 10] = 10

        var_to_concat = list_coicop12 + ['rev_disponible', 'somme_coicop12']
        aggregates_data_frame = df_weighted_average_grouped(dataframe = simulation_data_frame,
            groupe = 'year', varlist = var_to_concat)

        list_part_coicop12 = []
        aggregates_data_frame['part_coicop12_4'] = \
            aggregates_data_frame['coicop12_4'] / aggregates_data_frame['rev_disponible']
        list_part_coicop12.append('part_coicop12_4')
        appendable = aggregates_data_frame[list_part_coicop12]
        if df_to_graph is not None:
            df_to_graph = concat([df_to_graph, appendable])
        else:
            df_to_graph = appendable

    graph_builder_bar(df_to_graph)
        'tva_taux_intermediaire',
        'tva_taux_reduit',
        'tva_taux_super_reduit',
        'tva_total',
        'niveau_vie_decile',
        'rev_disponible',
        'pondmen',
        ]

    # Constition d'une base de données agrégée par décile (= collapse en stata)
    for year in [2000, 2005, 2011]:
        df = simulate_df(var_to_be_simulated = var_to_be_simulated, year = year)
        if year == 2011:
            df.niveau_vie_decile[df.decuc == 10] = 10
        varlist = ['rev_disponible', 'tva_taux_super_reduit',
                   'tva_taux_reduit', 'tva_taux_plein', 'tva_taux_intermediaire'
                   ]
        Wconcat = df_weighted_average_grouped(dataframe = df, groupe = 'niveau_vie_decile', varlist = varlist)

        # Example
        Wconcat['part_tva_tx_super_reduit'] = Wconcat['tva_taux_super_reduit'] / Wconcat['rev_disponible']
        Wconcat['part_tva_tx_reduit'] = Wconcat['tva_taux_reduit'] / Wconcat['rev_disponible']
        Wconcat['part_tva_tx_intermediaire'] = Wconcat['tva_taux_intermediaire'] / Wconcat['rev_disponible']
        Wconcat['part_tva_tx_plein'] = Wconcat['tva_taux_plein'] / Wconcat['rev_disponible']

        df_to_graph = Wconcat[['part_tva_tx_plein', 'part_tva_tx_super_reduit', 'part_tva_tx_reduit',
                               'part_tva_tx_intermediaire']]

        # Graphe par décile de revenu par uc de la ventilation des taux de taxation
        graph_builder_bar(df_to_graph)
        'consommation_tva_taux_plein',
        'categorie_fiscale_11',
        'tva_taux_intermediaire',
        'consommation_tva_taux_intermediaire',
        'tva_taux_reduit',
        'tva_taux_super_reduit',
        'tva_total',
        'ident_men',
        'pondmen',
        'decuc',
        'age',
        'revtot',
        'rev_disponible',
        'ocde10',
        'niveau_de_vie',
        #'depenses_by_grosposte',
        #'cs8pr'
        ]

    # Exemple : graphe par décile de revenu par uc de la ventilation de la consommation selon les postes agrégés de la CN
    for year in [2000, 2005, 2011]:
        # Constition d'une base de données agrégée par décile (= collapse en stata)
        df = simulate_df(var_to_be_simulated = var_to_be_simulated, year = year)
        Wconcat = df_weighted_average_grouped(dataframe = df, groupe = 'cs8pr', varlist = ['tva_total', 'revtot'])
        df_to_plot = Wconcat['tva_total'] / Wconcat['revtot']

        # Plot du graphe avec matplotlib
        plt.figure();
        df_to_plot.plot(kind='bar', stacked=True); plt.axhline(0, color='k')
        Wconcat.plot(kind='bar', stacked=True); plt.axhline(0, color='k')
        "consommation_cigares",
        "consommation_tabac_a_rouler",
        "consommation_alcools_forts",
        "consommation_vin",
        "consommation_biere",
    ]
    # Merge des deux listes
    var_to_be_simulated += list_coicop12

    for year in [2000, 2005, 2011]:
        # Constition d'une base de données agrégée par décile (= collapse en stata)
        df = simulate_df(var_to_be_simulated=var_to_be_simulated, year=year)
        if year == 2011:
            df.niveau_vie_decile[df.decuc == 10] = 10

        var_to_concat = list_coicop12 + ["rev_disponible"]
        Wconcat = df_weighted_average_grouped(dataframe=df, groupe="niveau_vie_decile", varlist=var_to_be_simulated)
        list_alcool_tabac = []
        Wconcat["part_alcool"] = (
            Wconcat["consommation_alcools_forts"] + Wconcat["consommation_vin"] + Wconcat["consommation_biere"]
        ) / Wconcat["rev_disponible"]
        list_alcool_tabac.append("part_alcool")
        Wconcat["part_tabac"] = (
            Wconcat["consommation_cigarette"] + Wconcat["consommation_cigares"] + Wconcat["consommation_tabac_a_rouler"]
        ) / Wconcat["rev_disponible"]
        list_alcool_tabac.append("part_tabac")

        df_to_graph = Wconcat[list_alcool_tabac].copy()
        df_to_graph.columns = ["Alcool", "Tabac"]
        graph_builder_bar(df_to_graph)
    import sys
    logging.basicConfig(level = logging.INFO, stream = sys.stdout)

    list_coicop12 = []
    for coicop12_index in range(1, 13):
        list_coicop12.append('coicop12_{}'.format(coicop12_index))

    var_to_be_simulated = [
        'pondmen',
        'niveau_vie_decile',
        'somme_coicop12',
        ]

    var_to_be_simulated += list_coicop12

    p = dict()
    df_to_graph = None
    for year in [2000, 2005, 2011]:
        simulation_data_frame = simulate_df(var_to_be_simulated = var_to_be_simulated, year = year)
        aggregates_data_frame = df_weighted_average_grouped(dataframe = simulation_data_frame,
            groupe = 'niveau_vie_decile', varlist = var_to_be_simulated)

        aggregates_data_frame[year] = aggregates_data_frame['coicop12_4'] / aggregates_data_frame['somme_coicop12']
        appendable = aggregates_data_frame[year]
        if df_to_graph is not None:
            df_to_graph = concat([df_to_graph, appendable], axis = 1)
        else:
            df_to_graph = appendable

    graph_builder_line(df_to_graph)
        'droit_d_accise_alcool',
        'droit_d_accise_tabac',
        'taxe_assurance',
        'tipp'
        ]

    for year in [2000, 2005, 2011]:
        df = simulate_df(var_to_be_simulated = var_to_be_simulated, year = year)

        if year == 2011:
            df.niveau_vie_decile[df.decuc == 10] = 10

        varlist = ['somme_coicop12', 'rev_disp_loyerimput', 'rev_disponible', 'tva_total',
                   'droit_d_accise_alcool', 'droit_d_accise_tabac',
                   'taxe_assurance', 'tipp']
        Wconcat_rev_disp = df_weighted_average_grouped(dataframe = df, groupe = 'niveau_vie_decile', varlist = varlist)
        Wconcat_conso = df_weighted_average_grouped(dataframe = df, groupe = 'niveau_vie_decile', varlist = varlist)
        Wconcat_rev_disp_loyerimput = df_weighted_average_grouped(dataframe = df,
            groupe = 'niveau_vie_decile', varlist = varlist)

        list_taux_d_effort_rev_disp = []

        Wconcat_rev_disp['taux_d_effort_tva'] = \
            Wconcat_rev_disp['tva_total'] / Wconcat_rev_disp['rev_disponible']
        list_taux_d_effort_rev_disp.append('taux_d_effort_tva')
        Wconcat_rev_disp['taux_d_effort_alcool'] = \
            Wconcat_rev_disp['droit_d_accise_alcool'] / Wconcat_rev_disp['rev_disponible']
        list_taux_d_effort_rev_disp.append('taux_d_effort_alcool')
        Wconcat_rev_disp['taux_d_effort_tabac'] = \
            Wconcat_rev_disp['droit_d_accise_tabac'] / Wconcat_rev_disp['rev_disponible']
        list_taux_d_effort_rev_disp.append('taux_d_effort_tabac')
        'tva_taux_reduit',
        'tva_taux_super_reduit',
        'tva_total',
        'revtot',
        'somme_coicop12_conso',
        'ocde10',
        ]

    var_to_be_simulated += list_coicop12

    # Constition d'une base de données agrégée par décile (= collapse en stata)
    for year in [2000, 2005, 2011]:
        df = simulate_df(var_to_be_simulated = var_to_be_simulated, year = year)
        var_to_concat = ['tva_taux_plein', 'tva_taux_intermediaire', 'tva_taux_reduit',
                         'tva_taux_super_reduit', 'tva_total']
        aggregates_data_frame = df_weighted_average_grouped(dataframe = df, groupe = 'niveau_vie_decile',
            varlist = var_to_concat)

        list_part_TVA = []
        aggregates_data_frame['part_tva_taux_plein'] = \
            aggregates_data_frame['tva_taux_plein'] / aggregates_data_frame['tva_total']
        list_part_TVA.append('part_tva_taux_plein')
        aggregates_data_frame['part_tva_taux_intermediaire'] = \
            aggregates_data_frame['tva_taux_intermediaire'] / aggregates_data_frame['tva_total']
        list_part_TVA.append('part_tva_taux_intermediaire')
        aggregates_data_frame['part_tva_taux_reduit'] = \
            aggregates_data_frame['tva_taux_reduit'] / aggregates_data_frame['tva_total']
        list_part_TVA.append('part_tva_taux_reduit')
        aggregates_data_frame['part_tva_taux_super_reduit'] = \
            aggregates_data_frame['tva_taux_super_reduit'] / aggregates_data_frame['tva_total']
        list_part_TVA.append('part_tva_taux_super_reduit')