J'ai dataframe de 1 à 80 numéros Comment puis-je obtenir 20 éléments de manière aléatoire et sauvegarder le résultat à un autre Dataframe? Je ne peux pas sauver chaque liste comme une ligne. Ses éléments d'économie comme une colonne. À l'avenir, je veux essayer de prédire tous les éléments de radom avec Sklearn Je dois obtenir 20 nombres uniques et écrire une ligne. Par exemple dans Python: P> 0 1 2 3 4 5 6 7 8 9 10 11 12 ... 20
0 1 5 10 14 20 55 67 34 ...... 20 elements
1
.
.
3 Réponses :
Utilisez pour une permutation aléatoire df.sample () Code>
pour obtenir des échantillons de données FRM A Dataframe: np.random.permutation () code>
: P> df1 = pd.DataFrame(np.reshape(df.values,(4,20)))
>>df1
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
0 4 3 10 2 8 7 1 5 6 9 14 13 20 12 18 17 11 15 16 19
1 24 23 30 22 28 27 21 25 26 29 34 33 40 32 38 37 31 35 36 39
2 44 43 50 42 48 47 41 45 46 49 54 53 60 52 58 57 51 55 56 59
3 64 63 70 62 68 67 61 65 66 69 74 73 80 72 78 77 71 75 76 79
Je veux 20 éléments uniques et non une séquence. Par exemple: 1,5,2,7,43,67,54,34,76,80,45,20,19,44,62 .. Et il m'a donné 10 colonnes, je veux obtenir chaque 20 nombre aléatoire écrit en un rangée. Ce sera 10 colonnes, j'ai besoin de 20 colonnes une ligne
@SoloMatador: veuillez vérifier EDIT et EDIT1, pensez que c'est ce que vous recherchez.
Merci beaucoup brah)) Je pensais que je ne peux pas d'abord expliquer correctement))
Ceci est un moyen simple d'utiliser des réponses de Stackoverflow existantes:
1- Aplatissez la matrice de sorte que cela ressemble plus à une liste, vous permettra de ne traiter qu'un seul index au lieu de traiter deux index de tableau p> < p> https: // docs. sciped.org/doc/numpy-1.15.0/Reference/Generated/numpy.ndarray.flaten.html p> 2- Choisissez des éléments aléatoires de l'aplatie Array une des réponses ici P> Comment Pour sélectionner aléatoirement un élément dans une liste? p> 3- avec les données sélectionnées, construisez votre Dataframe p> p>
Vous pouvez également utiliser numpy.random.choice et vous pouvez spécifier les lignes exactes que vous voulez dans l'exemple:
In [263]: a = np.arange(1,81).reshape(8,10) In [265]: b = pd.DataFrame(a) In [268]: b.iloc[np.random.choice(np.arange(len(b)), 5, False)] Out[268]: 0 1 2 3 4 5 6 7 8 9 5 51 52 53 54 55 56 57 58 59 60 7 71 72 73 74 75 76 77 78 79 80 3 31 32 33 34 35 36 37 38 39 40 1 11 12 13 14 15 16 17 18 19 20 4 41 42 43 44 45 46 47 48 49 50
Vous pouvez modifier 5
à 20
pour vos besoins. Vous n'avez pas à vous soucier du centile.
C'est la même chose, je veux obtenir 20 éléments uniques et écrire sur une ligne: Par exemple, comme ceci à partir d'un échantillon d'importation aléatoire pour x dans la plage (1,20): i = échantillon (plage (1,81), k = 20) i.sort () print (x, '-', i)
Oui. Ma solution a de meilleures performances. Si cela a aidé, envisagez de le voter.