No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Funciones de muestreo en Python

5/22
Recursos

Aportes 14

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Muestreo sistem谩tico:


columnas ( delgaci贸n, perimetro, tipo)
filas ( step:5)

Para hacer el Systematic_sample no era necesaria la funci贸n extra, solo con la sintaxis de iloc era suficiente, por ejemplo

Systematic_sample = econdata.iloc[::3,:]
De los indices desde el primero al ultimo en pasos de 3, y de las columnas todas

Dejo mi aporte de la lectura del archivo, por si alguien usa deepnote

uploaded = io.open("/work/data/economia-y-turismo-en-el-centro-historico.csv", "rb", buffering=0)
econdata = pd.read_csv(uploaded)

Me saqu茅 las ganas de hacer hasta el 100 y que vaya de 5 en 5:

def systematic_sampling (econodata,step):
  indexes = np.arange(0,101,step=step)
  systematic_sample = econodata.iloc[indexes]
  return systematic_sample

systematic_sample = systematic_sampling(econodata,5)
systematic_sample

Hola,

Si usan VsCode, teniendo el archivo en la raiz, s贸lo debes hacer:

econdata= pd.read_csv('economia-y-turismo-en-el-centro-historico.csv')

Me gusto, muy bueno para iniciar, con esta funci贸n se puede crear un men煤 para captura autom谩tica de datos y hacer el muestreo

Si por alguna raz贸n les aparece un error como este al tratar de importar el archivo, fijens茅 de ir a configuraci贸n del Chrome, a la parte de las cookies y permitir cookies de terceros en Google Colab.

Aqu铆 les dejo el reto de esta clase utilizando la funci贸n .iloc, esto lo hace mucho m谩s simplificado.

def systematic_sampling_2(data, start, end, step):
  return data.iloc[start:end:step,:]
systematic_sample_2 = systematic_sampling_2(econdata, 1, 100, 3)
print(systematic_sample_2.shape[0])
systematic_sample_2.head()

Resultado:

Comparto la funci贸n incluyendo los par谩metros que permiten definir el inicio y el final del muestreo:

def systematic_sampling(econdata, step, start=0, final=len(econdata) ):
    indexes = np.arange(start, final, step=step)
    systematic_sample = econdata.iloc[indexes]
    return systematic_sample

En Python, existen varias funciones y m贸dulos que se utilizan para realizar muestreos de datos. Algunas de las funciones m谩s comunes son:

  1. random.sample(): Esta funci贸n se utiliza para seleccionar una muestra aleatoria de elementos de una lista o conjunto.

  2. random.choices(): Esta funci贸n se utiliza para seleccionar elementos aleatorios de una lista o conjunto, con o sin reemplazo, y con o sin pesos.

  3. pandas.DataFrame.sample(): Esta funci贸n se utiliza para seleccionar una muestra aleatoria de un DataFrame de pandas.

  4. numpy.random.randint(): Esta funci贸n se utiliza para generar n煤meros enteros aleatorios dentro de un rango espec铆fico.

  5. numpy.random.rand(): Esta funci贸n se utiliza para generar n煤meros aleatorios flotantes dentro de un rango espec铆fico.

  6. numpy.random.permutation(): Esta funci贸n se utiliza para generar una permutaci贸n aleatoria de una lista o conjunto.

  7. numpy.random.choice(): Esta funci贸n se utiliza para elegir elementos aleatorios de una lista o conjunto, con o sin reemplazo, y con o sin pesos.

Es importante mencionar que todas estas funciones son parte de la librer铆a estandar de python o de paquetes como numpy o pandas, estas funciones son muy utilizadas en el 谩mbito de an谩lisis de datos, para realizar pruebas estad铆sticas, evaluar modelos, entre otras.

mi aporte espero les sirva de mucho

  • otra forma de hacer la funcion de la clase
def systematic_sampling(df ,step):
  df_ganador=df.iloc[0:len(df):step]
  return df_ganador
systematic_sampling(encondata_df,3)

Realice un par de modificaciones a la funci贸n para que permita definir tanto en punto de inicio como el punto final.

def muestra_sistematica(data,
                       step,
                       punto_inicio=0,
                       punto_fin=None):
    if(punto_fin is None):
        punto_fin = data.shape[0]
    indexes = np.arange(punto_inicio, punto_fin, step=step)
    sample = data.iloc[indexes]
    return sample

Comparto mi soluci贸n para cambiar a la funci贸n el inicio y fin 馃槂

def systematic_sampling(data, step, start = 0, stop = None):
  if stop == None: stop = len(data)
  indexes = np.arange(start, stop, step = step)
  systematic_sample = data.iloc[indexes]
  return systematic_sample
systematic_sample = systematic_sampling(econdata, 3, stop = 30)

La funci贸n ya acepta cualquier base de datos, pasos, inicio y fin.