pandas: mapa de datos de una hoja a otra usando la declaración condicional Python

CorePress2024-01-24  8

Estoy intentando asignar datos de un marco de datos a otro usando una declaración condicional, pero obtengo un error al hacerlo.

Datos de entrada:

amount
NaN
2100.05
3101
643
245
NaN

Fragmento de código:

df =pd.read_excel(open(r'C:\Users\Desktop\data.xlsx', 'rb'), sheet_name='sheet1')
df2 =pd.read_excel(open(r'C:\Users\Desktop\data.xlsx', 'rb'), sheet_name='sheet2')

if df['amount'] == NaN:
    df2['expense'] = df2['full_exp'] = 00
else:
    df2['expense'] = df2['expense'] = 01

print(df['expense'])

Resultado esperado:

expense
00
01
01
01
01
00

Por favor sugiera



------------------------------------

Puedes probar esto:

df2['expense'] = np.where(df['amount'].isna(), df2['full_exp'], df2['expense'])

Esto pondrá el valor de df2['full_exp'] donde df['amount'] es NaN y df2['expense'] en caso contrario.

Si desea leer más sobre .isna() y np.where(), puede visitar los documentos pandas.Series.isna y numpy.where.



------------------------------------

Prueba esto

import pandas as pd

import numpy as np

df =pd.read_excel(open(r'C:\Users\Desktop\data.xlsx', 'rb'), sheet_name='sheet1')

df2 =pd.read_excel(open(r'C:\Users\Desktop\data.xlsx', 'rb'), sheet_name='sheet2')

df2['expense'] = np.where(df['amount'].notnull(),'01',df2['expense'])

df2['expense'] = np.where(df['amount'].isnull(),'00',df2['expense'])

print(df2['expense'])

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare