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.