Python | Pandas trama de datos : En este tutorial, vamos a aprender acerca de la trama de datos pandas con la sintaxis, ejemplos de creación de trama de datos, indexación, acceso, etc.
Python | Pandas trama de datos
A trama de datos es una estructura de dos dimensiones tamaño-mutable, potencialmente heterogénea de datos tabular con los ejes rotulados (filas y columnas). Las operaciones aritméticas se alinean en ambas etiquetas de fila y de columna. Puede ser pensado como un objetos dict-como contenedor class Serie .
Sintaxis:
class pandas.DataFrame(
data=None,
index=None,
columns=None,
dtype=None,
copy=False
)
creación Ejemplo de trama de datos
import numpy as np
import pandas as pd
from numpy.random import randn
np.random.seed(101)
df = pd.DataFrame(randn(5,4), ['A','B','C','D','E'],['W','X','Y','Z'])
print(df)
salida
W X Y Z
A 2.706850 0.628133 0.907969 0.503826
B 0.651118 -0.319318 -0.848077 0.605965
C -2.018168 0.740122 0.528813 -0.589001
D 0.188695 -0.758872 -0.933237 0.955057
E 0.190794 1.978757 2.605967 0.683509
En el ejemplo anterior, cada una de las columnas es una serie y las filas respectivas son el común índice etiquetas.
Con el fin de hacer la indexación y la selección, el enfoque seguido es,
print(df['W'])
'''
Output:
A 2.706850
B 0.651118
C -2.018168
D 0.188695
E 0.190794
Name: W, dtype: float64
'''
print(type(df['W']))
'''
Output:
<class 'pandas.core.series.Series'>
'''
Lo anterior explica que trama de datos es un montón de serie con el índice de etiquetas comunes. Otro enfoque para recuperar las series de la trama de datos está siguiendo el camino de SQL (modo menos preferido),
print(df.W)
'''
Output:
A 2.706850
B 0.651118
C -2.018168
D 0.188695
E 0.190794
Name: W, dtype: float64
'''
Para obtener múltiples columnas de las tramas de datos
print(df[['W','X']])
'''
Output:
W X
A 2.706850 0.628133
B 0.651118 -0.319318
C -2.018168 0.740122
D 0.188695 -0.758872
E 0.190794 1.978757
'''
print(df[list('W''X')])
'''
Output:
W X
A 2.706850 0.628133
B 0.651118 -0.319318
C -2.018168 0.740122
D 0.188695 -0.758872
E 0.190794 1.978757
'''
Para crear una nueva columna en una trama de datos
df['new'] = df['X']+df['Y']
print(df)
'''
Output:
W X Y Z new
A 2.706850 0.628133 0.907969 0.503826 1.536102
B 0.651118 -0.319318 -0.848077 0.605965 -1.167395
C -2.018168 0.740122 0.528813 -0.589001 1.268936
D 0.188695 -0.758872 -0.933237 0.955057 -1.692109
E 0.190794 1.978757 2.605967 0.683509 4.584725
'''
para quitar la columna en una trama de datos
# doesn't remove from the object df
df.drop('W', axis=1)
print(df)
'''
Output:
W X Y Z new
A 2.706850 0.628133 0.907969 0.503826 1.536102
B 0.651118 -0.319318 -0.848077 0.605965 -1.167395
C -2.018168 0.740122 0.528813 -0.589001 1.268936
D 0.188695 -0.758872 -0.933237 0.955057 -1.692109
E 0.190794 1.978757 2.605967 0.683509 4.584725
'''
df = df.drop('W', axis=1)
print(df)
'''
Output:
X Y Z new
A 0.628133 0.907969 0.503826 1.536102
B -0.319318 -0.848077 0.605965 -1.167395
C 0.740122 0.528813 -0.589001 1.268936
D -0.758872 -0.933237 0.955057 -1.692109
E 1.978757 2.605967 0.683509 4.584725
'''
# use inplace = True to retain the changes
df.drop('X', axis=1, inplace = True)
print(df)
'''
Output:
Y Z new
A 0.907969 0.503826 1.536102
B -0.848077 0.605965 -1.167395
C 0.528813 -0.589001 1.268936
D -0.933237 0.955057 -1.692109
E 2.605967 0.683509 4.584725
'''
para eliminar una fila de la trama de datos
df.drop('E', axis=0, inplace = True)
print(df)
'''
Output:
Y Z new
A 0.907969 0.503826 1.536102
B -0.848077 0.605965 -1.167395
C 0.528813 -0.589001 1.268936
D -0.933237 0.955057 -1.692109
'''
a fin de explicar el razonamiento detrás el valor 0 y 1 al eje, tenemos a saber la forma de la trama de datos
print(df)
'''
Output:
Y Z new
A 0.907969 0.503826 1.536102
B -0.848077 0.605965 -1.167395
C 0.528813 -0.589001 1.268936
D -0.933237 0.955057 -1.692109
'''
print(df.shape)
'''
Output:
(4, 3)
'''
el tipo for de forma es una tupla, y en el ejemplo anterior el índice 0 ª de tupla (4) se refiere a número de filas y primera índice de tupla (3) se refiere para el número de columnas y por lo tanto el valor dado al eje como 0 o 1, mientras que la supresión de la fila / columna.
Selección de filas en una trama de datos
print(df)
'''
Output:
Y Z new
A 0.907969 0.503826 1.536102
B -0.848077 0.605965 -1.167395
C 0.528813 -0.589001 1.268936
D -0.933237 0.955057 -1.692109
'''
# here the argument is the location based index
print(df.loc['B'])
'''
Output:
Y -0.848077
Z 0.605965
new -1.167395
Name: B, dtype: float64
'''
# here the argument is the numerical based index of the row
print(df.iloc[1] )
'''
Output:
Y -0.848077
Z 0.605965
new -1.167395
Name: B, dtype: float64
'''
Selección de subconjuntos de filas y columnas
print(df)
'''
Output:
Y Z new
A 0.907969 0.503826 1.536102
B -0.848077 0.605965 -1.167395
C 0.528813 -0.589001 1.268936
D -0.933237 0.955057 -1.692109
'''
# row, column
print(df.loc['C','Y'])
'''
Output: 0.5288134940893595
'''
# pass the list of rows and columns to get the subsets
print(df.loc[['B','C'],['Y','Z']])
'''
Output:
Y Z
B -0.848077 0.605965
C 0.528813 -0.589001
'''