Pour transformer une trame de données Pandas en tableau NumPy, il est recommandé d'utiliser la méthode df.to_numpy(). Cette approche est préférable à df.values pour plusieurs raisons, comme détaillé ci-dessous.
Appel de df.to_numpy() La méthode permet l'extraction du tableau NumPy sous-jacent du dataframe.
import numpy as np import pandas as pd index = [1, 2, 3, 4, 5, 6, 7] a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1] b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan] c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan] df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index) df = df.rename_axis('ID') arr = df.to_numpy() print(arr)
Sortie :
[[ nan 0.2 nan] [ nan nan 0.5] [ nan 0.2 0.5] [ 0.1 0.2 nan] [ 0.1 0.2 0.5] [ 0.1 nan 0.5] [ 0.1 nan nan]]
Si l'objectif est de conserver les types de données dans le résultat Tableau NumPy, une approche possible consiste à utiliser DataFrame.to_records(), comme indiqué ci-dessous :
records_array = df.to_records() print(records_array)
Sortie :
rec.array([('a', 1, 4, 7), ('b', 2, 5, 8), ('c', 3, 6, 9)], dtype=[('ID', '<U1'), ('A', '<i8'), ('B', '<i8'), ('C', '<i8')])
Comme alternative, on peut utiliser np.rec.fromrecords :
v = df.reset_index() records_array = np.rec.fromrecords(v, names=v.columns.tolist()) print(records_array)
Sortie :
rec.array([('a', 1, 4, 7), ('b', 2, 5, 8), ('c', 3, 6, 9)], dtype=[('index', '<U1'), ('A', '<i8'), ('B', '<i8'), ('C', '<i8')])
L'utilisation de l'une ou l'autre de ces méthodes garantit la préservation des types de données dans le tableau NumPy.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!