Convertir Pandas Series en DataFrame

  1. Convertir un seul Pandas Series en Dataframe en utilisant pandas.Dataframe()
  2. Convertir un seul Pandas Series en Dataframe en utilisant pandas.Series.to_frame()
  3. Conversion de plusieurs séries de pandas en images de données

La création de nouvelles colonnes à partir des Series dérivées ou existantes est une activité formidable dans l’ingénierie des caractéristiques. La Series ou la colonne nouvellement créée peut être convertie en Dataframe en utilisant les fonctions natives Pandas. Dans cet article, nous allons présenter comment convertir les Series de pandas en Dataframe.

Dans les exemples suivants, nous travaillerons sur la Dataframe créée en utilisant l’extrait suivant.

import pandas as pd
import numpy as np

np.random.seed(0)

df_series = pd.Series(np.random.randint(0,100,size=(10)),
                        index=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])

print (df_series)

Production :

a    44
b    47
c    64
d    67
e    67
f     9
g    83
h    21
i    36
j    87
dtype: int64

Convertir un seul Pandas Series en Dataframe en utilisant pandas.Dataframe()

La Series peut être transformée en Dataframe en utilisant le constructeur Dataframe() en envoyant la Series de Pandas en argument.

import pandas as pd
import numpy as np

np.random.seed(0)

df_series = pd.Series(np.random.randint(0,100,size=(10)),
                        index=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])

print (pd.DataFrame(df_series, columns=['A']))

Production :

    A
a  81
b  37
c  25
d  77
e  72
f   9
g  20
h  80
i  69
j  79

Comme vu ci-dessus, la sortie de la fonction retourne une Dataframe.

Convertir un seul Pandas Series en Dataframe en utilisant pandas.Series.to_frame()

Cette fonction convertit la Series de pandas donnée en une trame de données. Le nom de la colonne peut être défini avec l’argument “name”.

import pandas as pd
import numpy as np

np.random.seed(0)

df_series = pd.Series(np.random.randint(0,100,size=(10)), 
                        index=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])

print (df_series.to_frame(name='A'))

Production :

    A
a  44
b  47
c  64
d  67
e  67
f   9
g  83
h  21
i  36
j  87

Il peut y avoir des scénarios où la série donnée n’a pas de nom. Dans de telles situations, la méthode reset_index() peut s’avérer utile.

import pandas as pd
import numpy as np

np.random.seed(0)

df_series = pd.Series(np.random.randint(0,100,size=(10)), 
                        index=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']).rename_axis('index')

print (df_series)
print ('\n')
print (df_series.reset_index())

Résultat :

index
a    44
b    47
c    64
d    67
e    67
f     9
g    83
h    21
i    36
j    87
dtype: int64


  index   0
0     a  44
1     b  47
2     c  64
3     d  67
4     e  67
5     f   9
6     g  83
7     h  21
8     i  36
9     j  87

Comme vu ci-dessus, le dataframe créé contient une nouvelle colonne nommée 0. La colonne nommée 0 peut être renommée en utilisant l’argument name qui peut être fourni à la fonction reset_index(), comme indiqué ci-dessous.

import pandas as pd
import numpy as np

np.random.seed(0)

df_series = pd.Series(np.random.randint(0,100,size=(10)), 
                        index=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']).rename_axis('index')

print (df_series)
print ('\n')
print (df_series.reset_index(name='A'))

Production :

index
a    44
b    47
c    64
d    67
e    67
f     9
g    83
h    21
i    36
j    87
dtype: int64


  index   A
0     a  44
1     b  47
2     c  64
3     d  67
4     e  67
5     f   9
6     g  83
7     h  21
8     i  36
9     j  87

Conversion de plusieurs séries de pandas en images de données

Les exemples ci-dessus ont démontré la capacité de convertir une seule série de pandas en une trame de données. Et s’il y avait plusieurs Series, et qu’il fallait les assembler en une seule Dataframe ? Lors de la création de chaque série, la trame de données peut être créée par concaténation en utilisant la fonction concat().

import pandas as pd
import numpy as np

np.random.seed(0)

df_series1 = pd.Series(np.random.randint(0,100,size=(10)), 
                        index=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])
df_series2 = pd.Series(np.random.randint(40,100,size=(10)), 
                        index=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])
df_series3 = pd.Series(np.random.randint(80,100,size=(10)), 
                        index=['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])

df_stitched = pd.concat([df_series1, df_series2, df_series3], axis=1)

print (df_stitched)

Production :

    0   1   2
a  44  46  97
b  47  64  85
c  64  64  93
d  67  52  88
e  67  98  89
f   9  41  99
g  83  78  96
h  21  79  99
i  36  63  85
j  87  86  95

Notez que la fonction pd.concat() comprend un argument axis=1, qui correspond à l’appendice le long de la colonne. Si axis n’est pas fourni, il y aura une fusion ou une union de lignes à travers toutes les Dataframes.

Article connexe - Pandas DataFrame

  • Comment ajouter une nouvelle colonne à DataFrame existant avec une valeur par défaut dans Pandas
  • Comment convertir le dictionnaire Python en Pandas DataFrame
  • Article connexe - Pandas Series

  • Comment convertir Pandas Dataframe en Numpy array
  • Comment supprimer une colonne de Pandas DataFrame