¿Cómo se manejan los valores faltantes (NaN) en un DataFrame de Pandas?
Respuesta:
Los valores faltantes se pueden manejar usando df.dropna() para eliminar filas/columnas con NaNs, o df.fillna() para reemplazar los NaNs con un valor específico (por ejemplo, 0, media, mediana o relleno hacia adelante/atrás). La elección depende de los datos y los objetivos del análisis.
Explica la diferencia entre loc e iloc para la indexación de DataFrames.
Respuesta:
loc es principalmente indexación basada en etiquetas, lo que significa que usas etiquetas de fila/columna para seleccionar datos. iloc es indexación basada en la ubicación entera, lo que significa que usas posiciones enteras (de 0 a longitud-1) para seleccionar datos. Ambos se pueden usar para selecciones únicas o para rebanar (slicing).
¿Cómo se realiza una operación JOIN estilo SQL entre dos DataFrames en Pandas?
Respuesta:
Los JOINs estilo SQL se realizan utilizando la función pd.merge(). Especificas los DataFrames, el argumento on para las columnas comunes y el argumento how para el tipo de unión (por ejemplo, 'inner', 'left', 'right', 'outer').
Describe cómo agrupar datos en un DataFrame y aplicar una función de agregación.
Respuesta:
Los datos se agrupan usando el método df.groupby(), especificando la(s) columna(s) por la(s) que agrupar. Después de agrupar, se puede aplicar una función de agregación como sum(), mean(), count(), min() o max() al objeto agrupado para resumir los datos.
¿Cómo puedes aplicar una función personalizada a una columna o fila de un DataFrame?
Respuesta:
Para operaciones columna a columna, usa df['columna'].apply(funcion_personalizada). Para operaciones fila a fila o elemento a elemento a través de múltiples columnas, usa df.apply(funcion_personalizada, axis=1) para filas o df.apply(funcion_personalizada, axis=0) para columnas. Las operaciones vectorizadas son generalmente preferibles por rendimiento.
¿Para qué se utiliza pivot_table y en qué se diferencia de groupby?
Respuesta:
pivot_table se utiliza para crear una tabla dinámica estilo hoja de cálculo como un DataFrame, resumiendo datos por una o más columnas clave. Mientras que groupby agrega datos basándose en una o más claves, pivot_table también permite "desapilar" (unstack) y remodelar los datos en un nuevo formato tabular con índice, columnas y valores especificados.
¿Cómo se cambia el tipo de dato de una columna en un DataFrame de Pandas?
Respuesta:
El tipo de dato de una columna se puede cambiar usando el método astype(), por ejemplo, df['columna'] = df['columna'].astype('int') o df['columna'] = pd.to_datetime(df['columna']) para fechas. Esto es crucial para la manipulación y el análisis correcto de los datos.
Explica cómo eliminar filas duplicadas de un DataFrame.
Respuesta:
Las filas duplicadas se pueden eliminar usando el método df.drop_duplicates(). Por defecto, considera todas las columnas y mantiene la primera ocurrencia. Puedes especificar un subconjunto de columnas usando el argumento subset y si mantener las duplicadas 'first' (primera), 'last' (última) o False (todas).
¿Cómo crearías nuevas columnas basadas en columnas existentes en un DataFrame?
Respuesta:
Se pueden crear nuevas columnas realizando operaciones sobre columnas existentes, por ejemplo, df['nueva_col'] = df['col1'] + df['col2']. Para una lógica más compleja, se puede usar el método apply() con una función lambda o una función definida, o np.where() para asignaciones condicionales.
¿Cuál es el propósito de stack() y unstack() en Pandas?
Respuesta:
stack() transforma un DataFrame (o Serie) de formato ancho a largo, "desapilando" el índice de columna más interno para que se convierta en el índice de fila más interno. unstack() realiza la operación inversa, "apilando" el índice de fila más interno para que se convierta en el índice de columna más interno, transformando de formato largo a ancho.
¿Cómo se ordena un DataFrame por una o más columnas?
Respuesta:
Un DataFrame se puede ordenar usando el método df.sort_values(). Especificas el argumento by con un nombre de columna o una lista de nombres de columnas. El argumento ascending (por defecto True) controla el orden de clasificación, y inplace=True puede modificar el DataFrame directamente.
¿Cuándo usarías pd.concat() en lugar de pd.merge()?
Respuesta:
pd.concat() se usa para combinar DataFrames a lo largo de un eje (por filas o por columnas) cuando tienen estructuras similares o deseas apilarlos. pd.merge() se usa para combinar DataFrames basándose en columnas comunes (claves), similar a las uniones de SQL, cuando deseas combinar datos relacionados de diferentes fuentes.