una seleccionar recorrer filtrar filas fila datos data crear columnas columna agregar python pandas

python - recorrer - seleccionar una columna pandas



Selección aleatoria de filas en el marco de datos de Pandas (5)

¿Algo como esto?

import random def some(x, n): return x.ix[random.sample(x.index, n)]

¿Hay alguna manera de seleccionar filas aleatorias de un DataFrame en Pandas?

En R, usando el paquete de coche, hay una función útil some(x, n) que es similar a la cabeza, pero selecciona, en este ejemplo, 10 filas al azar de x.

También miré la documentación de corte y parece que no hay nada equivalente.

Actualizar

Ahora usa la versión 20. Hay un método de muestra.

df.sample(n)


Con pandas versión 0.16.1 y 0.16.1 posteriores, ahora hay un método DataFrame.sample incorporado :

import pandas df = pandas.DataFrame(pandas.np.random.random(100)) # Randomly sample 70% of your dataframe df_percent = df.sample(frac=0.7) # Randomly sample 7 elements from your dataframe df_elements = df.sample(n=7)

Para cualquiera de los enfoques anteriores, puede obtener el resto de las filas haciendo:

df_rest = df.loc[~df.index.isin(df_percent.index)]


Debajo de la línea se seleccionará aleatoriamente n número de filas del total de filas existentes del marco de datos df sin reemplazo.

df=df.take(np.random.permutation(len(df))[:n])


En realidad, esto le dará índices repetidos np.random.random_integers(0, len(df), N) donde N es un número grande.


La mejor manera de hacerlo es con la función de muestra del módulo aleatorio,

import numpy as np import pandas as pd from random import sample # given data frame df # create random index rindex = np.array(sample(xrange(len(df)), 10)) # get 10 random rows from df dfr = df.ix[rindex]