English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

DataFrame de Pandas

   Basic operations of Pandas DataFrame

DataFrame is a two-dimensional data structure, that is, data is aligned in a tabular form across rows and columns.

DataFrame functions

The potential columns are of different types Variable size Labeled axis (rows and columns) Arithmetic operations can be performed on rows and columns

Structure

pandas.Series

The structure of Series is as follows:

Let's assume we are creating a DataFrame with student data.

We can consider it as a SQL table or an electronic spreadsheet data representation.

pandas.DataFrame

The following constructors can be used to create a pandas DataFrame-

 pandas.DataFrame(data, index, columns, dtype, copy)

Parameter description:

data: The data is in various forms, such as ndarray, series, mapping, list, dict, constants, and another DataFrame. index: For row labels, if no index is passed, the index used for the result frame is Optional Default np.arange(n). columns: Para los etiquetas de columna, la sintaxis predeterminada opcional es}}-np.arange(n). Sólo se aplica si no se pasa un índice. dtype: Tipo de datos de cada columna. copy: Si el valor predeterminado es False, este comando (o cualquier comando de él) se usa para copiar los datos.

Crear DataFrame

Se puede crear un DataFrame de pandas con varios inputs-

Lists dict Series Numpy ndarray Otro DataFrame

En la parte posterior de este capítulo, veremos cómo usar estos inputs para crear un DataFrame.

Crear DataFrame vacío

Se puede crear un DataFrame básico que es un DataFrame vacío.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 df = pd.DataFrame()
 print(df)

Resultados de la ejecución:

 DataFrame vacío
 Columnas: []
 Índice: []

Crear DataFrame desde Lists

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 data = [1,2,3,4,5]]
 df = pd.DataFrame(data)
 print(df)

Resultados de la ejecución:

 0
 0 1
 1 2
 2 3
 3 4
 4 5
 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 data = [['Alex',10],['Bob',12],['Clarke',13]]
 df = pd.DataFrame(data, columns=['Nombre','Edad'])
 print(df)

Resultados de la ejecución:

       Nombre     Edad
 0     Alex     10
 1     Bob      12
 2     Clarke   13
 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 data = [['Alex',10],['Bob',12],['Clarke',13]]
 df = pd.DataFrame(data, columns=['Nombre','Edad'], dtype=float)
 print df

Resultados de la ejecución:

 
      Nombre   Edad
 0    Alex   10.0
 1    Bob    12.0
 2    Clarke 13.0
Nota:El parámetro dtype cambia el tipo de la columna 'Edad'.

de ndarray / Crear un DataFrame con un Dict de List

La longitud de todos los ndarray debe ser la misma. Si se pasa un index, la longitud del índice debe ser igual a la longitud del array.
Si no se pasa un índice, el índice predeterminado será range(n), donde n es la longitud del array.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 data = {'Nombre':['Tom', 'Jack', 'Steve', 'Ricky'], 'Edad':28,34,29,42'])
 df = pd.DataFrame(data)
 print(df)

Resultados de la ejecución:

 
    Edad Nombre
 0   28   Tom
 1   34   Jack
 2   29   Steve
 3   42   Ricky
Nota:respetando el valor 0、1、2、3Son índices predeterminados asignados a cada objeto usando el rango de función (n).

usamos un array para crear un DataFrame de índices.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 data = {'Nombre':['Tom', 'Jack', 'Steve', 'Ricky'], 'Edad':28,34,29,42'])
 df = pd.DataFrame(data, index=['rango'1','rango'2','rango'3','rango'4'])
 print(df)

Resultados de la ejecución:

 
       Edad Nombre
 rank1 28 Tom
 rank2 34 Jack
 rank3 29 Steve
 rank4 42 Ricky
Nota:El parámetro index asigna un índice a cada fila.

Crear DataFrame desde lista de diccionarios

Una lista de diccionarios puede ser pasada como datos de entrada para crear un DataFrame. Por defecto, las claves de los diccionarios se utilizan como nombres de columna.
El siguiente ejemplo muestra cómo crear un DataFrame pasando una lista de diccionarios.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
 df = pd.DataFrame(data)
 print(df)

Resultados de la ejecución:

     a b c
 0 1 2 NaN
 1 5 10 20.0
Nota:NaN (no numérico) se añade en las áreas faltantes.

El siguiente ejemplo muestra cómo crear un DataFrame pasando una lista de diccionarios y un índice de filas.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
 df = pd.DataFrame(data, index=['first', 'second'])
 print(df)

Resultados de la ejecución:

          a b c
 first 1 2 NaN
 second 5 10 20.0

El siguiente ejemplo muestra cómo crear un DataFrame que contiene una lista de diccionarios, índices de filas y columnas.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 data = [{'a': 1, 'b': 2},{'a': 5, 'b': 10, 'c': 20}]
 # Dos índices de columna, valores iguales a las claves del diccionario
 df1 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b'])
 # Dos índices de columna
 df2 = pd.DataFrame(data, index=['first', 'second'], columns=['a', 'b'])1'])
 print(df1)
 print(df2)

Resultados de la ejecución:

 #df1 output
       a b
 first 1 2
 second 5 10
 #df2 output
       a b1
 first 1 NaN
 second 5 NaN
Nota:df2 El DataFrame se crea con un índice de columna diferente de las claves del diccionario; por lo tanto, se añade NaN en su lugar. Y df1Se crea con el índice de columna igual al de las claves del diccionario, por lo que se añade NaN.

Crear DataFrame desde Dict Series

Se puede pasar un diccionario de series para formar un DataFrame. El índice resultante es la unión de todos los índices de las series pasadas.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 print(df)

Resultados de la ejecución:

   one two
 a 1.0 1
 b 2.0 2
 c 3.0 3
 d NaN 4

Para la primera serie, no se pasó la etiqueta 'd', pero el resultado es que se añadió NaN para la etiqueta 'd'.
Ahora vamos a entender la selección, adición y eliminación de columnas a través de un ejemplo.

Consulta de columna

Vamos a seleccionar una columna de DataFrame para entender esto.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 print(df['one'])

Resultados de la ejecución:

   a 1.0
 b 2.0
 c 3.0
 d NaN
 Nombre: one, tipo: flotante64

Añadir columna

Vamos a entender esto añadiendo una nueva columna a la caja de datos existente.

# Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 #Añadir una nueva columna pasando una nueva serie a un objeto DataFrame existente con etiquetas de columna
 print ("Añadiendo una nueva columna como Series:")
 df['three']=pd.Series([10,20,30],index=['a','b','c'])
 print df
 print ("Agregar una nueva columna usando una columna existente en DataFrame:")
 df['four']=df['one']+df['three']
 print(df)

Resultados de la ejecución:

 Agregar una nueva columna pasando como Series:
 one two three
 a 1.0 1 10.0
 b 2.0 2 20.0
 c 3.0 3 30.0
 d NaN 4 NaN
 Agregar una nueva columna usando una columna existente en DataFrame:
 one two three four
 a 1.0 1 10.0 11.0
 b 2.0 2 20.0 22.0
 c 3.0 3 30.0 33.0
 d NaN 4 NaN NaN

Eliminación de columnas

Se puede eliminar o quitar una columna; veamos cómo hacerlo con un ejemplo.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']), 
    'three' : pd.Series([10,20,30], index=['a','b','c'])}
 df = pd.DataFrame(d
 print ("Our dataframe is:")
 print(df)
 # using del function
 print ("Deleting the first column using del function:")
 del df['one']
 print(df)
 # using pop function
 print ("Deleting another column using POP function:")
 df.pop('two')
 print(df)

Resultados de la ejecución:

 Our dataframe is:
 one three two
 a 1.0 10.0 1
 b 2.0 20.0 2
 c 3.0 30.0 3
 d NaN NaN 4
 Deleting the first column using del function:
   three two
 a 10.0 1
 b 20.0 2
 c 30.0 3
 d NaN 4
 Deleting another column using POP function:
   three
 a 10.0
 b 20.0
 c 30.0
 d NaN

Consulta, adición y eliminación de filas

Ahora, entenderemos la selección de filas, la adición y la eliminación mediante un ejemplo. Comencemos con el concepto de selección.

Consulta por etiqueta

Se puede seleccionar una fila mediante la transmisión de una etiqueta de fila a la funciónloc.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 print(df.loc['b'])

Resultados de la ejecución:

 
   one 2.0
 two 2.0
 Name: b, dtype: float64

El resultado es una serie de etiquetas con nombres como nombres de columna de DataFrame. Y, el nombre de la serie se utiliza para buscar su etiqueta.

Consulta por posición entera

Se puede seleccionar una fila mediante la transmisión de una posición entera a la funcióniloc.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']),
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 print(df.iloc[2])

Resultados de la ejecución:

 
   one 3.0
 two 3.0
 Name: c, dtype: float64

Rebanada de filas

Se puede usar el operador ': ' para seleccionar múltiples filas.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 d = {'one' : pd.Series([1, 2, 3], index=['a', 'b', 'c']), 
    'two' : pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}
 df = pd.DataFrame(d
 print(df[2:4])

Resultados de la ejecución:

 
     one two
 c 3.0 3
 d NaN 4

Agregar filas

Agregar nuevas filas al DataFrame utilizando la función append. Esta función agregará filas al final.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 df = pd.DataFrame([1, 2], [3, 4], columns = ['a','b'])
 df2 = pd.DataFrame([5, 6], [7, 8], columns = ['a','b'])
 df = df.append(df2)
 print(df)

Resultados de la ejecución:

 
     a b
 0 1 2
 1 3 4
 0 5 6
 1 7 8

Eliminar filas

Eliminar filas desde DataFrame utilizando etiquetas de índice. Si las etiquetas son repetidas, se eliminarán múltiples filas.
Si observa, en el ejemplo anterior, las etiquetas son repetidas. Eliminemos una etiqueta y veremos cuántas filas se eliminarán.

 # Nombre de archivo: pandas.py
 # author by: es.oldtoolbag.com 
 # Importar paquete de dependencia pandas y alias
 import pandas as pd
 df = pd.DataFrame([1, 2], [3, 4], columns = ['a','b'])
 df2 = pd.DataFrame([5, 6], [7, 8], columns = ['a','b'])
 df = df.append(df2)
 # Eliminar filas con etiqueta 0
 df = df.drop(0)
 print(df)

Resultados de la ejecución:

 
     a b
 1 3 4
 1 7 8

En el ejemplo anterior, se eliminaron dos filas, ya que contenían la etiqueta 0 repetida.