Crie uma nova coluna no dataframe python 3 (pandas) com base no valor em outra coluna
Aug 16 2020
Eu tenho um dataframe do pandas onde preciso criar novas colunas com base nos valores de outras colunas no dataframe. Aqui está o quadro de dados
pessoa cidade estado país
A Chicago Illinois EUA
B Phoenix Arizona EUA
C San Diego Califórnia EUA
Eu quero criar duas novas colunas com base nos valores no estado
- Crie uma nova coluna df["city-north"] = df['city'] onde estado = "Illinois"
- Crie uma nova coluna df["city-south"] = df['city'] onde o estado não é igual a "Illinois"
eu tentei
df.loc[((df['state'] == 'Illinois')), 'city-north'] = df['city']
df.loc[((df['state'] != 'Illinois')), 'city-south'] = df['city']
Mas a segunda linha de código, onde não é igual à condição, não cria a coluna 'city-south'. Por favor ajude
Respostas
1 jezrael Aug 16 2020 at 13:10
Para mim, trabalhando bem, se nenhuma condição de correspondência for criada, valores ausentes:
df.loc[df['state'] == 'Illinois', 'city-north'] = df['city']
df.loc[df['state'] != 'Illinois', 'city-south'] = df['city']
print (df)
person city state country city-north city-south
0 A Chicago Illinois USA Chicago NaN
1 B Phoenix Arizona USA NaN Phoenix
2 C San Diego California USA NaN San Diego
Se precisar de strings de valores vazios para linhas não correspondidas:
df['city-north'] = np.where(df['state'] == 'Illinois', df['city'], '')
df['city-south'] = np.where(df['state'] != 'Illinois', df['city'], '')
print (df)
person city state country city-north city-south
0 A Chicago Illinois USA Chicago
1 B Phoenix Arizona USA Phoenix
2 C San Diego California USA San Diego
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino