Propiedades loc, iloc, at e iat — 5:51 min

  • 5:51 min | Última modificación: Octubre 6, 2021

Pandas es una librería de alto desempeño para el manejo y análisis de datos en Python ampliamente utilizada en Analítica y Ciencia de Datos, por lo que su dominio resulta fundamental. Pandas se especializa en estructuras “tidy”, es decir, tablas de datos donde cada fila es un registro y cada columna es un atributo.

Este tutorial esta basado en https://es.hortonworks.com/tutorial/beginners-guide-to-apache-pig/

Preparación

[1]:
import pandas as pd

pd.set_option("display.notebook_repr_html", False)

Carga de los datos de los conductores

[2]:
#
# Carga del archivo ddesde un repo en GitHub
#
drivers = pd.read_csv(
    "https://raw.githubusercontent.com/jdvelasq/playground/master/datasets/drivers/drivers.csv",
    sep=",",
    thousands=None,
    decimal=".",
)

drivers.set_index("name", inplace=True)
drivers.head()
[2]:
                   driverId        ssn                   location certified  \
name
George Vetticaden        10  621011971         244-4532 Nulla Rd.         N
Jamie Engesser           11  262112338         366-4125 Ac Street         N
Paul Coddin              12  198041975  Ap #622-957 Risus. Street         Y
Joe Niemiec              13  139907145        2071 Hendrerit. Ave         Y
Adis Cesir               14  820812209        Ap #810-1228 In St.         Y

                  wage-plan
name
George Vetticaden     miles
Jamie Engesser        miles
Paul Coddin           hours
Joe Niemiec           hours
Adis Cesir            hours

Selección de un grupo de filas

[3]:
#
# iloc recibe únicamente enteros, por lo que
# permite seleccionar elementos por posición.
#
drivers.iloc[2:5]
[3]:
             driverId        ssn                   location certified  \
name
Paul Coddin        12  198041975  Ap #622-957 Risus. Street         Y
Joe Niemiec        13  139907145        2071 Hendrerit. Ave         Y
Adis Cesir         14  820812209        Ap #810-1228 In St.         Y

            wage-plan
name
Paul Coddin     hours
Joe Niemiec     hours
Adis Cesir      hours
[4]:
drivers.loc[
    [
        "Joe Niemiec",
        "Rohit Bakshi",
        "Adis Cesir",
    ]
]
[4]:
              driverId        ssn             location certified wage-plan
name
Joe Niemiec         13  139907145  2071 Hendrerit. Ave         Y     hours
Rohit Bakshi        15  239005227    648-5681 Dui- Rd.         Y     hours
Adis Cesir          14  820812209  Ap #810-1228 In St.         Y     hours

Selección de un grupo de filas y columnas

[5]:
drivers.iloc[2:5, [1, 3]]
[5]:
                   ssn certified
name
Paul Coddin  198041975         Y
Joe Niemiec  139907145         Y
Adis Cesir   820812209         Y
[6]:
rows = [
        "Joe Niemiec",
        "Rohit Bakshi",
        "Adis Cesir",
    ]

columns = [
    "location",
    "certified",
    "wage-plan",
]

drivers.loc[rows, columns]
[6]:
                         location certified wage-plan
name
Joe Niemiec   2071 Hendrerit. Ave         Y     hours
Rohit Bakshi    648-5681 Dui- Rd.         Y     hours
Adis Cesir    Ap #810-1228 In St.         Y     hours

Selección de un registro en particular

[7]:
drivers.iloc[1]
[7]:
driverId                     11
ssn                   262112338
location     366-4125 Ac Street
certified                     N
wage-plan                 miles
Name: Jamie Engesser, dtype: object
[8]:
drivers.loc["Jamie Engesser"]
[8]:
driverId                     11
ssn                   262112338
location     366-4125 Ac Street
certified                     N
wage-plan                 miles
Name: Jamie Engesser, dtype: object

Selección de una celda en particular por posición

[9]:
drivers.iat[1, 2]
[9]:
'366-4125 Ac Street'

Selección de una celda en particular usando etiquetas

[11]:
drivers.at["Joe Niemiec", "location"]
[11]:
'2071 Hendrerit. Ave'