Comment convertir une colonne d'une dataframe en matrice avec pandas

Published: 30 mars 2021

Tags: Python; Pandas; DataFrame;

DMCA.com Protection Status

Exemples de comment convertir une colonne d'une dataframe en matrice avec pandas

Create a dataframe

Let's create a dataframe with pandas

import pandas as pd
import numpy as np

data = np.random.randint(10, size=(5,2))

df = pd.DataFrame(data=data,columns=['A','B'])

print(df)

returns for example

   A  B
0  2  3
1  9  8
2  4  8
3  4  7
4  3  8

Convertir une colonne de nombres

Pour convertir la colonne dataframe en matrice, une solution consiste à utiliser pandas.DataFrame.to_numpy. Exemple avec la colonne appelée 'B'

M = df['B'].to_numpy()

donne

array([3, 8, 8, 7, 8])

pour vérifier le type:

type(M)

donne

numpy.ndarray

Colonne avec des données manquante (s)

Si une valeur manquante np.nan est insérée dans la colonne:

df.iloc[2,1] = np.nan

print(df)

donne

   A    B
0  2  3.0
1  9  8.0
2  4  NaN
3  4  7.0
4  3  8.0

to_numpy() marche encore

M = df['B'].to_numpy()

[ 3.  8. nan  7.  8.]

et

M.dtype

donne

dtype('float64')

Pour remplacer les valeurs manquantes par un nombre donné, une solution consiste à utiliser le paramètre na_value

M = df['B'].to_numpy(na_value=-999)

donne

[   3.    8. -999.    7.    8.]

Convertir une colonne de strings

Un autre exemple avec une colonne de strings:

new_col_df = pd.DataFrame(data=['a','b','c','d','e'],columns=['C'])

df = pd.concat([df,new_col_df], axis=1)

donne

   A    B  C
0  2  3.0  a
1  9  8.0  b
2  4  NaN  c
3  4  7.0  d
4  3  8.0  e

alors

M = df['C'].to_numpy()

donne

['a' 'b' 'c' 'd' 'e']

er

M.dtype

donne

dtype('O')

Références