Je rencontre quelques difficultés à essayer de comprendre comment extraire plusieurs valeurs dans une liste qui sont espacées de quelques indices. Par exemple, étant donné une liste l = [0,1,2,3,4,5,6,7,8,9,10]
, je veux seulement extraire les valeurs [1,2,3] et [6,7,8,9]
. Je pourrais faire l[1:4]+l[6:-1]
, mais y a-t-il un moyen d'écrire l[1:4,6:-1]
?
C'est en réalité un problème secondaire par rapport au problème principal que j'ai avec un dataframe pandas. J'ai un dataframe, df
, avec les colonnes ['A','B','C','I1','D','E','F','I2','I3']
, et je veux uniquement conserver les colonnes importantes ['I1', 'I2', 'I3']
. Maintenant, l'approche actuelle que j'utilise est
df.drop(df.columns[0:3], axis=1, inplace=True)
df.drop(df.columns[4:7], axis=1, inplace=True)
Y a-t-il un moyen de le faire en une seule ligne sans écrire explicitement les valeurs des colonnes?
Merci!
PS. Je sais que les dataframes pandas utilisent numpy, et je n'ai pas trouvé de solutions de contournement en numpy non plus, mais je pense que la syntaxe pour supprimer des colonnes est de format standard de liste python, si cela a un sens.
EDIT: J'ai trouvé un moyen de le faire pour numpy mais c'est aussi sur 2 lignes, à partir de cette question. Nous pouvons faire:indices = np.hstack((np.arange(0:3), np.arange(4:7))
df.drop(df.columns[indices], axis=1, inplace=True)
Cependant, je suis toujours à la recherche de méthodes généralisées en une seule ligne.