J'ai un document Excel qui ressemble à ceci ..
cluster load_date budget actual fixed_price
A 1/1/2014 1000 4000 Y
A 2/1/2014 12000 10000 Y
A 3/1/2014 36000 2000 Y
B 4/1/2014 15000 10000 N
B 4/1/2014 12000 11500 N
B 4/1/2014 90000 11000 N
C 7/1/2014 22000 18000 N
C 8/1/2014 30000 28960 N
C 9/1/2014 53000 51200 N
Je veux pouvoir retourner le contenu de la colonne 1 - cluster sous forme de liste, donc je peux exécuter une boucle for dessus et créer une feuille de calcul Excel pour chaque cluster.
Est-il également possible de renvoyer le contenu d'une ligne entière dans une liste? par exemple
list = [], list[column1] or list[df.ix(row1)]
.tolist()
pour les transformer en une liste python.values
la méthode préférée pour accéder aux tableaux numpy sous-jacents NE SERA PLUS. Voir cette réponse .df.to_numpy().tolist()
devrait convenir à la plupart des cas d'utilisation.list(x)
Réponses:
Les colonnes Pandas DataFrame sont des séries Pandas lorsque vous les retirez, que vous pouvez ensuite appeler
x.tolist()
pour les transformer en liste Python. Vous pouvez également le lancer aveclist(x)
.Production:
la source
Cela renvoie un tableau numpy:
Cela renvoie un tableau numpy de valeurs uniques :
Vous pouvez également utiliser numpy pour obtenir les valeurs uniques, bien qu'il existe des différences entre les deux méthodes:
la source
Exemple de conversion:
Numpy Array -> Panda Data Frame -> Liste d'une colonne Panda
Numpy Array
Convertir un tableau numpy en trame de données Panda
Convertir un cadre Panda en liste
pdToList = list(dataPd['2'])
la source
df = pd.DataFrame(data=[[10, 20, 30], [20, 30, 60], [30, 60, 90]])
plus simple? Notez également le nom de la variable et les espaces qui suivent les conventions de style Python. Itérer sur la liste comme preuve Qu'est-ce que cela prouve, exactement? Que c'est une liste?Comme cette question a attiré beaucoup d'attention et qu'il existe plusieurs façons d'accomplir votre tâche, permettez-moi de vous présenter plusieurs options.
Ce ne sont d'ailleurs que des doublures;)
Commençant par:
Aperçu des opérations potentielles:
code:
comme indiqué par cs95, d' autres méthodes devraient être préférées à l'
.values
attribut pandas de la version 0.24 de pandas, voir ici . Je l'utilise ici, car la plupart des gens (d'ici 2019) auront toujours une version plus ancienne, qui ne prend pas en charge les nouvelles recommandations. Vous pouvez vérifier votre version avecprint(pd.__version__)
la source
Si votre colonne n'a qu'une seule valeur, quelque chose comme
pd.series.tolist()
va produire une erreur. Pour garantir qu'il fonctionnera dans tous les cas, utilisez le code ci-dessous:la source
En supposant que le nom de la trame de données après avoir lu la feuille Excel est
df
, prenez une liste vide (par exempledataList
), parcourez la trame de données ligne par ligne et ajoutez-la à votre liste vide comme-Ou,
Non, si vous imprimez le
dataList
, vous obtiendrez chaque ligne sous forme de liste dans ledataList
.la source
lower_case_with_underscores
style. Quel avantage cette solution a-t-elle exactement par rapport aux solutions existantes? De plus, je décourage vraiment l'utilisation de l'accès de style attributaire sur les séries et les DataFrames.la source