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.