J'ai un Dataframe que je veux couper en fonction des éléments d'une liste. Par exemple, j'ai un Je veux ensuite couper le Dataframe de sorte que le premier morceau soit de 16 rangées, la deuxième partie 14, la troisième partie 2 .. etc. Il pourrait être bénéfique de la mettre aussi dans une liste. p> gamme_list [16, 14, 2 ...] code> p>
3 Réponses :
Utilisez [retour] p> retourne une liste avec 3 numpy.split code>
. Cela peut prendre une gamme d'indices pour trancher. Vous devez donc vous obliger à cumsum code> votre liste de gamme.
exemple h2>
dataframes code> dans cet exemple, de formes
(16, 2) code>,
(14, 2) code> &
(2, 2) code> p>
Serait-il possible de faire ce travail avec des valeurs de flotteur? J'ai des floats dans mon DF et obtenez le message d'erreur: TypeError: "Numpy.Float64" ne peut pas être interprété comme un entier
Vous ne pouvez pas trancher avec des flotteurs ... Par exemple, il n'y a pas d'index 2.5 code> d'une liste. Les indices doivent être entiers
Si vous voulez dire qu'il y a des dtypes float dans gamme_list code> (J'espère seulement
x.0 code> valeurs), puis utilisez
indices = np.cumsum (gamme_list, DTYPE = np.int32) code>
Merci c'est ce que je cherchais
En réalité, il donne toujours l'erreur TypeError: l'objet "Numpy.Float64" ne peut pas être interprété comme un entier
Je ne suis pas sûr que si je vous comprends correctement. Si vous voulez juste diviser la liste, vous pouvez faire quelque chose comme ceci:
def split_list(l, range_list): i = 0 for x in range_list: start = i end = start + x print(l[start:end])
Vous pouvez créer un tableau avec la somme cumulative des éléments de liste, ajouter un zéro initial, et une finale -1, puis le surmonté pour trancher le Dataframe initial: