J'ai plusieurs dataframes de pandas et je voudrais écrire une fonction qui prendra les valeurs dans chaque colonne des données de données et les mettre dans leur propre réseau numpy.
Exemple Dataframe P>
In [1]: df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
In [2]: df
Out[2]:
A B
0 1 2
1 1 3
2 4 6
3 Réponses :
Vous pouvez utiliser cette méthode pour obtenir une liste de réseaux numpus pour chaque colonne. Vous pouvez également mettre les tableaux dans un dictionnaire aussi, mais je préfère une liste sur le premier parce qu'elle est commandée et que nous pouvons toujours utiliser une fonction zippée avec DF.Columns pour obtenir des données tuples!
[array([ 1, 21, 213, 32], dtype=int64), array([ 4, 5, 32, 3], dtype=int64), array([213, 23, 23, 1], dtype=int64)]
Merci pour l'aide! Pourriez-vous expliquer la fonction zip un peu plus?
Zip () est utilisé pour emballer des éléments dans des tuples et itérale à travers le tuple. Essayez ces deux lignes après le code ci-dessus! pour (nom_name, np_arr) dans zip (df.columns, np_arr_list): code> `imprimer (" Nom de la colonne: ", Col_Name," \ Narray ", np_arr," \ n ")` Il lie Col_Name itérer à travers DF.Columns et np_arr via NP_arr_List. Je l'utilise pour l'association de noms de colonnes et de valeurs dans certains cas d'utilisation où je souhaite conserver des données et des noms séparés. Autre moyen est d'utiliser un dictionnaire avec les clés comme nom de colonne et valeurs comme des tableaux numpus.
df ['a']. Valeurs code> retourneront des tableaux numpus. Voir ci-dessous: for col in df.columns:
print(col, type(df[col].values))
A <class 'numpy.ndarray'>
B <class 'numpy.ndarray'>
Vous devez utiliser to_numpy () code> méthodes car d'autres seront obsolètes. Si votre bibliothèque code> pandas code> est plus ancienne que >>> df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
>>> arr = []
>>> for column in df.columns:
... arr.append(df[column].to_numpy())
...
>>> arr
[array([1, 1, 4], dtype=int64), array([2, 3, 6], dtype=int64)]
>>>
J'ai essayé d'utiliser cela et j'ai eu cette erreur AttributeError: "Dataframe" objet n'a aucun attribut 'to_numpy'
Comme je l'ai dit, vous devez mettre à jour le paquet Pandas à 0,24 ou plus récent. Le dernier est 0.24.2. Essayez d'imprimer (pd .__ version__) pour voir la version actuelle
Celui que je travaille est assez vieux merci pour le conseil
@GGDHHDHD Sachez que toutes les autres méthodes telles que .Values. AS_MATRIX sera obsolète pour que je ne suggérerais pas de les utiliser
Il suffit d'utiliser
df.values code>;Est-ce que cela ne prend pas les valeurs de l'ensemble de l'afrique?
Bienvenue sur Stackoverflow. Veuillez prendre le temps de lire ce message sur Comment fournir une excellente exemple de pandas a> ainsi que comment fournir un exemple minimal, complet et vérifiable et réviser votre question en conséquence. Ces conseils sur Comment poser une bonne question peut également être utile.
J'ai édité ma question. Toute autre manière que je pourrais l'améliorer?
Quelle est votre production attendue? Une liste de tableau numpy?
La sortie attendue serait une matrice numpue. Je peux prendre une colonne et la convertir en une matrice numpue à l'aide de DF.ILOC, puis en couvrant que NP.ASARRAY, mais je me demandais quel serait la meilleure façon d'écrire une fonction qui la fait parce que j'ai quelques données de données et elles réparer toutes les longueurs