- Crear un DataFrame
- Join / Concatenar / Group by
- Agregar/Editar Columna
- Filtrar Datos
- Explorar
script:
import pandas as pd import numpy as np # CREAR UN DATA FRAME # ----------------------------------------------------------------- # crear dataframe con datos aleatorios df0 = pd.DataFrame(np.random.randn(5, 4), columns=['a', 'b', 'c', 'd']) #crear dataframe con datos inline. metodo 1 df1 = pd.DataFrame([[1,2],[11,22],[111,222]],columns=["uno","dos"]) # crear dataframe con datos inline. metodo 2 df1_dsc = pd.DataFrame({'uno':[1,11,111] , 'desc':['unidad','decena','centena']}) df2 = pd.DataFrame({'uno':[1,11,111] , 'dos':[2,22,222]}) # JOIN / CONCATENAR / GROUP BY # ----------------------------------------------------------------- # concatena dos DataFrame. metodo 1 df3 = pd.concat([df1, df2]) # concatena dos DataFrame. metodo 2 df4 = df1.append(df2) # inner join. metodo 1 df5 = pd.merge(df3, df1_dsc, on='uno') # GRUOP BY: metodo 1 agg1 = df5.groupby(['desc'], axis=0).sum() # GRUOP BY: metodo 2 agg2 = df5[['desc','uno']].groupby(['desc'], axis=0).sum() # AGREGAR/EDITAR COLUMNA # ----------------------------------------------------------------- # Agregar una columna inline df = pd.DataFrame() df['tres']=[3,33,333] # Agregar columna que calcula longitudad de otra columna df['lon_tres'] = df['tres'].apply(lambda x: len(str(x))) # Crea una variable con menores de edad = 1 df = pd.read_csv('https://www.dropbox.com/s/cugxdc9mhau4nw1/titanic2.csv?dl=1') df["child"] = int(0) df["child"][df["age"] < 18] = 1 # reemplaza el valor de un texto en una columna df5['desc'].replace("unidad","unidades", inplace=True) df5['desc'].replace("decena","decenas", inplace=True) df5['desc'].replace("centena","centenas", inplace=True) #elimina texto en parentesis df8 = pd.DataFrame({'uno':[1,11,111] , 'desc':['unidad(uno)','decena(dos)','centena(tres)']}) df8['desc'] = df8['desc'].str.replace(r"\(.*\)","") # sumar 2 columnas en una nueva df['embarque'] = df['embarked_c'] + df['embarked_s'] # cambiar nombre deuna columna df8.rename(columns={'desc':'descripcion', 'uno':'valor'}, inplace = True) # Borrar una columna. tecnica 1 df5.drop('desc', axis = 1, inplace = True) # Borrar una columna. tecnica 2 del df5['uno'] # FILTRAR # ----------------------------------------------------------------- #imprime perimeras filas de un data frame print df.head() #imprime primeras 3 filas de las 2 primeras columnas df.iloc[0:3, 0:2] #imprime primeras 3 filas de las columnas 0,2 y 5 df.iloc[0:4, [0,2,5]] # filtra 2 columnas df[['age', 'male']] #imprime primeras tres filas de las columnas age y fare df.ix[0:2,["age","fare"]] # filtrar por multiples condiciones df[(df['male'] == 1) & (df['age'] < 18)] # pasajeros por sobre la media de edad df[(df['age'] > df['age'].mean())] # EXPLORAR # ----------------------------------------------------------------- # imprime los titulos de la columna o headers print df.columns.values # frecuencia de una variable print(df["survived"].value_counts()) # frecuencia porcentual de una variable print(df["survived"].value_counts(normalize = True)) # procentaje de la variable survived solo para menores de edad print(df["survived"][df["age"] < 18].value_counts(normalize = True)) # agrupa una variable en escalas df.groupby(pd.cut(df.age, range(0, 99, 10))).size() # normalizar un data set comleto df_nrm = (df - df.mean()) / (df.max() - df.min())
muy bueno gracias...
ResponderEliminarExcelente. Gracias compañero (Y)
ResponderEliminar