Convertir Pandas Series en DataFrame

Sathiya Sarathi 30 janvier 2023
  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
Convertir Pandas Series en DataFrame

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 DataFrame. 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())

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   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 DataFrame. 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 DataFrame 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

Article connexe - Pandas Series