Пример #1
0
    def apply(self, df):
        leg = pd.read_csv(self.leg_path, sep=';', dtype=str, low_memory=False)\
            .append(pd.read_csv(self.leg_presidente_path, sep=';', dtype=str, low_memory=False))

        idx = ["ANO_ELEICAO", "CODIGO_CARGO", "NUMERO_PARTIDO", "SIGLA_UE"]
        columns = df.columns.tolist()

        leg = leg.drop_duplicates(idx)

        before = len(df)
        df = df.set_index(idx)
        df = df.merge(leg.set_index(idx), how='left', left_index=True, right_index=True).reset_index()

        df['COMPOSICAO_LEGENDA'] = df['COMPOSICAO_COLIGACAO']
        df['CODIGO_LEGENDA'] = df['SEQUENCIA_COLIGACAO']
        df['SIGLA_LEGENDA'] = df['SIGLA_PARTIDO_y']
        df['SIGLA_PARTIDO_x'] = df['SIGLA_PARTIDO_y']
        df['NOME_COLIGACAO_x'] = df['NOME_COLIGACAO_y']
        df = resolve_conflicts(df)

        after = len(df)
        if after > before:
            raise Exception(f'Duplicating Values {after - before}')

        return df[columns]
Пример #2
0
    def join_candidatos(self, item, cand, df):
        if item['uf'] == 'ZZ':
            idx = [
                "ANO_ELEICAO", "CODIGO_CARGO", "NUMERO_CANDIDATO", "NUM_TURNO"
            ]
        else:
            idx = [
                "ANO_ELEICAO", "CODIGO_CARGO", "NUMERO_CANDIDATO", "NUM_TURNO",
                "SIGLA_UE"
            ]

        if item['uf'] == 'DF':
            df.loc[df['CODIGO_CARGO'] == '8', 'SIGLA_UE'] = 'DF'

        cand = cand.drop_duplicates(idx)

        df = df.set_index(idx)
        df = df.merge(cand.set_index(idx),
                      how='left',
                      left_index=True,
                      right_index=True).reset_index()
        df = resolve_conflicts(df)

        df.loc[df['ID_CANDIDATO'].isnull(), 'ID_CANDIDATO'] = '0'

        return df[self.columns + ['NUMERO_PARTIDO', 'ID_CANDIDATO']]
Пример #3
0
    def join_legendas_no_job(self, df, leg):
        idx = ["ANO_ELEICAO", "NUMERO_PARTIDO", "UF"]

        leg = leg.drop_duplicates(idx)

        df = df.set_index(idx)
        df = df.merge(leg.set_index(idx),
                      how='left',
                      left_index=True,
                      right_index=True).reset_index()
        df.loc[df['ID_LEGENDA_x'] == '0', 'ID_LEGENDA_x'] = df['ID_LEGENDA_y']
        df = resolve_conflicts(df)

        df.loc[df['ID_LEGENDA'].isnull(), 'ID_LEGENDA'] = '0'

        return df[self.columns +
                  ['NUMERO_PARTIDO', 'ID_CANDIDATO', 'ID_LEGENDA']]
Пример #4
0
    def apply(self, df: pd.DataFrame):
        if len(df[df['CODIGO_CARGO'] == '1']) > 0:
            cand = pd.read_csv(self.cand_2010_path, sep=';',
                               dtype=str).set_index(self.idx)

            before = len(df)

            df = df.set_index(self.idx)
            df = df.merge(cand, left_index=True,
                          right_index=True).reset_index()
            df = resolve_conflicts(df)
            df['SEQUENCIA_COLIGACAO'] = df['CODIGO_LEGENDA']
            df = df[self.columns]

            if len(df) > before:
                raise Exception('Duplicating values')

        return df
Пример #5
0
    def join_legendas(self, item, df, leg):
        if item['uf'] == 'ZZ':
            idx = ["ANO_ELEICAO", "CODIGO_CARGO", "NUMERO_PARTIDO"]
        else:
            idx = ["ANO_ELEICAO", "CODIGO_CARGO", "NUMERO_PARTIDO", "SIGLA_UE"]

        leg = leg.drop_duplicates(idx)

        df = df.set_index(idx)
        df = df.merge(leg.set_index(idx),
                      how='left',
                      left_index=True,
                      right_index=True).reset_index()
        df = resolve_conflicts(df)

        df.loc[df['ID_LEGENDA'].isnull(), 'ID_LEGENDA'] = '0'

        return df[self.columns +
                  ['NUMERO_PARTIDO', 'ID_CANDIDATO', 'ID_LEGENDA']]
Пример #6
0
    def join_mun(self, vot):
        df = vot.merge(self.aux_mun, on='COD_MUN_TSE', how='left', sort=False)
        df = resolve_conflicts(df, prefer='_y', drop='_x')
        df = df.rename(columns={'SIGLA_UF': 'UF'})

        return df