Está en la página 1de 6

Resumen Pandas

Tabla = asignar una variable de tipo dataframe

Importar librerías
Import pandas as pd
Import numpy as np

Leer CSV

Tabla = pd.read_CSV(“Archivo.csv” , sep=“Separador (ej: ; , . |” ,


encoding=(“Latin1”,”utf-8” ,”utf-16”, thousands=( separador de miles ej:".") ,
decimal=( separador de decimales ej:",")

Leer textos de ancho fijo (ej viejos TXT de AFIP, SIAP, etc) (Fixed-Width
Formatted lines)

Tabla = pd.read_fwf("Archivo.txt", encoding=("latin1") , decimal=(",") ,


thousands=("") ,
header=None (si no tiene títulos),
widths=[1 , 3 , 2 , 26 , 30 , 5], #Longitud de columnas)
names=["Col 1” , “Col2” , , “Col3” , “Col4” , “ColN”])# NombreCol

Leer Excel

Tabla = pd.read_excel(“Archivo.xlsx” , Sheet_name= , header= )

Leer HTML (los excels de varias páginas que no son Excels, sino un XML con
“formato” .xlsx

Tabla = pd.read_html('Archivo.xls' , decimal="," , thousands="" , header = 0)[0]


Crear columna

Tabla[“Columna nueva”]
Tabla[“Columna nueva2”] = 0 #Crear columna nueva rellena con 0

Transformar un String a Formato Fecha de Pandas

Tabla["Fecha Pandas"] = pd.to_datetime(Tabla["Fecha en formato dd/mm/aaaa"] ,


format="%d/%m/%Y").dt.date

Crear columna con periodo AAAAMM de una columna que tiene fecha en formato
DD/MM/AAAA

Tabla["Periodo"] = Tabla["FECHA"].str[-4:] + Tabla["FECHA"].str[3:5]

Tabla["Periodo"] = pd.to_datetime(Tabla["Fecha en formato dd/mm/aaaa"] ,


format="%d/%m/%Y").dt.date.astype(str).str[0:7].str.replace("-" , "").astype(int)

Reemplazar texto de una columna

Tabla["Col a Reemplazar"] = Tabla["Col a Reemplazar"].str.replace("T viejo" , "T


nuevo")

Transformar tipo de columna

Tabla[“Col a transformar”] = Tabla[“Col a transformar”].astype(str)

str = string/texto
float = float/decimal
int = integer/entero
np.int64 = Integer/entero de 64 bits (usar para CUITS)
Reemplazar doble espacio por nada

Tabla = Tabla.replace(r'\s+',' ', regex=True )

Concatenar columnas en otra AUX

Tabla[“AUX”] = Tabla[“Col1”].astype(str) + “-” + Tabla[“Col2”].astype(str) + “-” +


Tabla[“Col3”].astype(str)

Contar.si en una columna

Tabla['Contar.si'] = df.groupby('col objetivo')['col objetivo'].transform('count')

Unir tablas (hay left, right, inner, outer)

TablaConsolidada = pd.merge(
left= Tabla1,
right= Tabla2,
left_on="AUX1",
right_on="AUX2",
how="left"
)

Seleccionar columnas (elimina a las no seleccionadas)

Tabla = Tabla[[“Col 1” , “Col2” , “Col3” , Col N”]]


Tabla2 = Tabla[[“Col 1” , “Col2” , “Col3” , Col N”]] # Crea una nueva tabla con la
selección de columnas
Tabla = [Tabla.columns[:-1]] #Selecciona todas menos la última columna
Renombrar columnas

Tabla = Tabla.rename(Columns={“Col1 Vieja” : “Col1 Nueva” , “Col2 Vieja” : “Col2


Nueva” “ColN V” : “ColN N”})
Tabla.columns = [“Col1” , “Col2” , “Col3” , “Col4” , “Col N”] #remombra columnas en
orden

Eliminar columas

Tabla = Tabla.drop(["Col1” , “Col2” , “Col N”] , axis = 1) #Eliminar por nombre de


columna
Tabla = Tabla.drop(columns=Tabla.columns[2:11]) #Eliminar por números de columnas

Eliminar duplicados

Tabla = Tabla.drop_duplicates()

Reemplazar valores no numéricos con 0 o ““

Tabla = Tabla.fillna("0")

Ordenar de mayor a menor

Tabla = Tabla.sort_values("NRO", ascending=False)

Filtrar Columnas

Tabla = Tabla[Tabla["Columna1"] != 0] #### Filtro de =/=

Tabla = Tabla[Tabla.Columna1=="A"] #### Filtro de = (si la columna no tiene espacios


en su nombre se la puede llamar con un “.” En vez de [“Nombre de columna”]
Filtro relacionado al contenido

Tabla = Tabla[Tabla['col'].str.contains('hello')] #Contiene


Tabla = Tabla[~Tabla['col'].str.contains('hello')] #Contiene

Filtrar los datos relacionados a una lista

Tabla = Tabla[~Tabla["Col"].isin(("11","12","13","15"))] #No está en la lista


Tabla = Tabla[Tabla["Col"].isin(("11","12","13","15"))] #Está en la lista

Cambiar el valor de una columna con relación al valor de otra columna

Tabla["Columna a cambiar el valor"][Tabla["Columna con condición"] != 0] # Si la


columna con condición es distinta de 0 (es decir se cumple la considicón), la columna
a cambiar el valor pasa a tener el valor de la columna con condición le puedo agregar
un = Tabla[“Columna a tomar valores también”]
Tabla.loc[Compras['Columna con condición'] != "0" , 'Columna a cambiar'] =
Tabla["columna con valores index"] (también puede ser una constante Ej: “0”) #Igual
al ejemplo anterior
Tabla.loc[Tabla ["Columna a la que le quiero aplicar una condición"] != 0 , 'Columna a
la que le quiero aplicar el valor buscado'] = Tabla ["columna de la cual proviene el
valor buscado"].astype(str)
Compras.loc[Compras["Pago SIRE + Cte + Efectivo"] != 0 , 'Periodo de Pago'] =
Compras["Pago SIRE + Cte + Efectivo"].astype(str) # si la columna "Pago SIRE + Cte +
Efectivo" es distinto de 0, entonces el la columna 'Periodo de Pago' me tendría que
colocar el valor de la columna de "Pago SIRE + Cte + Efectivo" en formato string
Tabla.loc[ (Tabla["columna condicional"] == Condición) | o & (Tabla["columna
condiciona2"] == Condición), "Columna a ser modificada"] = valor asignado a la
"columna a ser modificada" o Tabla["columna"]

Rellenar con X carácter a la Izquierda o Derecha

Tabla.str.pad(“largo de texto”, side='left', fillchar=' ') #Rellena de espacios a la


Izquierda
Tabla.str.pad(“largo de texto”, side=right, fillchar='0') #Rellena de 0 a la Derecha
DateTime Format Codes

One extremely important concept to understand is DateTime format codes. This is how you instruct Pandas
what format your DateTime string is in. It’s magic every time you see it work. In fact, I look forward to gross
strings with dates in them just to parse. See documentation.

Format Code Description Examples


%a Weekday, abbreviated Mon, Tues, Sat
%A Weekday, full name Monday, Tuesday, Saturday
%w Weekday, decimal. 0=Sunday 1, 2, 6
%d Day of month, zero-padded 01, 02, 21
%b Month, abbreviated Jan, Feb, Sep
%B Month, full name January, February, September
%m Month number, zero-padded 01, 02, 09
%y Year, without century, zero-padded 02, 95, 99
%Y Year, with century 1990, 2020
%H Hour (24 hour), zero padded 01, 22
%I Hour (12 hour) zero padded 01, 12
%p AM or PM AM, PM
%M Minute, zero-padded 01, 02, 43
%S Second, zero padded 01, 32, 59
%f Microsecond, zero-padded 000001, 000342, 999999
%z UTC offset ±HHMM[SS[.ffffff]] +0000, -1030, -3423.234
%Z Time zone name ITC, EST, CST
%j Day of year, zero-padded 001, 365, 023
%U Week # of year, zero-padded. Sunday first day of week 00, 01, 51
%W Week # of year, zero-padded. Monday first day of week 00, 02, 51
%c Appropriate date and time Monday Feb 01 21:30:00 1990
%x Appropriate Date 02/01/1990
%X Appropriate Time 21:22:00
%% Literal '%' – Use this when you have a % sign in your format. %

También podría gustarte