Creating a new column using for

Asked

Viewed 32 times

1

Hello people I am using this database 'https://cdn.tse.jus.br/statica/sead/odsele/votaca_partido_munzona/votacao_partido_munzona_2020.zip' to work. I would like to create a new column in the dataframe to classify ideology.

df_vot = pd.read_csv('./Dados aula04/votacao_partido_munzona_2020_BRASIL.csv', sep = ';', encoding = 'latin1')

centro = ['AVANTE', 'MDB', 'PROS', 'PSDB', 'SOLIDARIEDADE']


direita = ['DC', 'DEM', 'NOVO', 'PATRIOTA', 'PL', 'PMB', 'PMB', 'PODE', 'PP',
          'REPUBLICANOS', 'PRTB', 'PSC', 'PSD', 'PSL', 'PTB', 'PTC']

esquerda = ['PC do B', 'PDT', 'PMN', 'CIDADANIA', 'PSB', 'PSOL', 'PT', 'PV', 'REDE']


for v in df_vot['SG_PARTIDO']:
    if v in centro:
        df_vot['IDEOLOGIA'] == 'Centro'
    elif v in direita:
        df_vot['IDEOLOGIA'] == 'Direita'
    else:
        df_vot['IDEOLOGIA'] == 'Esquerda'
        
        
df_vot

However in the output I am getting, only the first if is 'working'. The output I am having is equal to the figure below. I hope you can help me.

inserir a descrição da imagem aqui

1 answer

2


Dice

df_vot = pd.read_csv('./Dados aula04/votacao_partido_munzona_2020_BRASIL.csv', sep = ';', encoding = 'latin1')

centro = ['AVANTE', 'MDB', 'PROS', 'PSDB', 'SOLIDARIEDADE']


direita = ['DC', 'DEM', 'NOVO', 'PATRIOTA', 'PL', 'PMB', 'PMB', 'PODE', 'PP',
          'REPUBLICANOS', 'PRTB', 'PSC', 'PSD', 'PSL', 'PTB', 'PTC']

esquerda = ['PC do B', 'PDT', 'PMN', 'CIDADANIA', 'PSB', 'PSOL', 'PT', 'PV', 'REDE']

I suggest you use Loc together with isin

df_vot.loc[df_vot['SG_PARTIDO'].isin(centro), 'IDEOLOGIA'] = 'CENTRO'
df_vot.loc[df_vot['SG_PARTIDO'].isin(direita), 'IDEOLOGIA'] = 'DIREITA'
df_vot.loc[df_vot['SG_PARTIDO'].isin(esquerda),'IDEOLOGIA'] = 'ESQUERDA'
  1. We check if the list is contained within the data frame
  2. we search with the Oc where the occurrences are true and insert the type of ideology
  • 1

    Served perfect! Thank you very much

  • Good morning @Diogogouveiajr! What a great one it served! Big hug!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.