Búsqueda de sitios web

Diferencia entre series y vectores en Python Pandas


Pandas es una conocida biblioteca de Python de código abierto que proporciona una amplia gama de capacidades para hacer que el análisis de datos sea más efectivo. El paquete Pandas se utiliza principalmente para actividades de preprocesamiento de datos, incluida la limpieza, transformación y manipulación de datos. Como resultado, es una herramienta muy útil para analistas y científicos de datos. En este artículo se analizan las dos estructuras de datos más populares en Pandas (Series y DataFrame), así como la comparación de Series y vectores.

Serie Pandas Python

En la biblioteca Python Pandas, una serie es una matriz etiquetada unidimensional que puede contener cualquier tipo de datos. Es similar a una columna en una hoja de cálculo o un marco de datos en R. Una serie se crea pasando una lista de valores a la función pd.Series() y se puede acceder a ella mediante índices o etiquetas.

Las etiquetas deben ser de tipo hash, pero no es necesario que sean únicas. El objeto tiene una variedad de métodos para trabajar con el índice y admite la indexación basada en números enteros y etiquetas.

Tiene el siguiente parámetro:

  • Datos: cualquier lista, diccionario o valor escalar se puede utilizar como dato.

  • index: el valor del índice debe ser distinto y utilizable mediante hash. Tiene que tener el mismo tamaño que los datos. Si no se proporciona ningún índice, se utilizará np.arrange(n) de forma predeterminada.

  • Dtype − Alude al tipo de datos de la serie.

  • copiar : se utiliza para copiar información.

Creando una serie

Podemos crear una serie de cuatro formas:

Usando la función pd.Series de la biblioteca Pandas

import pandas as pd
import numpy as np
# Create a series from a list
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)

Producción

0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

Esto creará una Serie Pandas con los valores 1, 3, 5, NaN, 6, 8.

Crear una serie directamente desde una matriz NumPy

import numpy as np
import pandas as pd
# Create a NumPy array
data = np.array([1, 3, 5, np.nan, 6, 8])
# Create a series from the array
s = pd.Series(data)
print(s)

Producción

0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64

Ambos métodos crearán una serie Pandas con un índice que es un rango de números enteros que comienza desde 0. También puede especificar sus propios valores de índice al crear la serie.

Crear una serie a partir de valores escalares

Hacer una serie con valores escalares es el último enfoque que examinaremos hoy. En este caso, puede proporcionar los datos con un valor único y repetirlo mientras dure el índice.

Ejemplo

import pandas as pd
if __name__ == '__main__':
   series = pd.Series(data=3.,
      index=['a', 'b', 'c', 'd'],
      name='series_from_scalar')
   print(series)

Producción

a    3.0
b    3.0
c    3.0
d    3.0
Name: series_from_scalar, dtype: float64

Creando una serie desde ndarray

La función random.randint() de NumPy, que crea un ndarray lleno de números aleatorios, es uno de los métodos más sencillos para crear un

Ejemplo

import numpy as np
import pandas as pd
if __name__ == '__main__':
   data = np.random.randint(0, 10, 5)
   series = pd.Series(data=data,
      index=['a', 'b', 'c', 'd', 'e'],
      name='series_from_ndarray')
   print(series)

Producción

a    5
b    7
c    0
d    8
e    5
Name: series_from_ndarray, dtype: int64

Marcos de datos

Por otro lado, un vector es una matriz unidimensional de valores numéricos. En Pandas, un vector se puede representar como una serie con un solo tipo d (por ejemplo, entero, flotante u objeto). Los vectores se usan comúnmente en operaciones matemáticas y estadísticas y se pueden crear usando la función pd.to_numeric() o seleccionando una sola columna de un marco de datos.

Con pd, puede generar un DataFrame a partir de varias fuentes de datos, incluidos diccionarios, matrices 2D NumPy y series. Creación de un marco de datos de Pandas utilizando un diccionario de la serie Pandas

El índice debe tener la misma longitud que la Serie. Si no se especifica el índice, se creará automáticamente con valores: [0,…, len(datos) – 1].

#Creating a DataFrame from a dictionary of Series
import pandas as pd
data = pd.DataFrame({
   "Class 1": pd.Series([22, 33, 38], index=["math avg", "science avg",  "english avg"]),
   "Class 2": pd.Series([45, 28, 36], index=["math avg", "science avg",  "english avg"]),
   "Class 3": pd.Series([32, 41, 47], index=["math avg", "science avg",  "english avg"])
})
 
print(data)

Producción

             Class 1  Class 2  Class 3
math avg          22       45       32
science avg       33       28       41
english avg       38       36       47

La siguiente es la conclusión de la diferencia entre series y marcos de datos en Python Pandas.

DataFrame

Series

Data structure

2D table

1D array

Can contain heterogeneous data

Yes

Yes

Can contain column labels

Yes

No

Can contain row labels

Yes

No

Can be indexed by column or row labels

Yes

Yes

Can be sliced by column or row labels

Yes

Yes

Supports arithmetic operations

Yes

Yes

Supports arithmetic operations

Yes

Yes

Conclusión

En resumen, las principales diferencias entre series y vectores en Python Pandas son:

  • Las series pueden contener cualquier tipo de datos, mientras que los vectores solo pueden contener valores numéricos.

  • Las series tienen un índice de etiqueta, mientras que los vectores no.

  • Se puede acceder a las series mediante etiquetas o índices, mientras que a los vectores solo se puede acceder mediante índices.

Comprender la diferencia entre series y vectores puede ser útil para seleccionar la estructura de datos adecuada para sus datos y para manipularlos y analizarlos en Pandas.

Artículos relacionados: