Tengo 2 marcos de datos pandas df1 y df2
df1
identificación | nombre | la edad |
---|---|---|
1 | José | dieciséis |
2 | Jane | 17 |
df2
identificación | puntaje |
---|---|
1 | dieciséis |
2 | 8 |
entonces estoy fusionando ambos marcos de datos:
mergedf = df1.merge(df2, on='id', how='left')
y después de todo, crearé un nuevo marco de datos, que debería tener la identificación de las columnas y el nombre de df1 , y la puntuación de la columna de df2 y, además, una nueva columna (diff) que será la diferencia entre la puntuación y la edad y otra columna llamada estado que será el resultado de lo siguienteif 'age' == 'score' then 'OK' else 'false'
Este es el código del nuevo marco de datos.
newDF = mergedf[['id','name','score','diff', 'status']]
Pero todavía no tengo claro cómo debo anidar este código
if 'age' == 'score' then 'OK' else 'false'
para generar las nuevas columnas diff y status.
Úselo diff
para calcular la diferencia entre las columnas y luego use numpy.where
para su condición
mergedf = df1.merge(df2, on='id', how='left')
mergedf['diff'] = mergedf[['age', 'score']].diff(axis=1)['score']
mergedf['status'] = np.where(mergedf['diff'] == 0, 'OK', False)
print(mergedf)
id name age score diff status
0 1 Joe 16 16 0 OK
1 2 Jane 17 8 -9 False
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras