Convertir Pandas Series en DataFrame
-
Convertir un seul Pandas
Series
enDataFrame
en utilisantpandas.DataFrame()
-
Convertir un seul Pandas
Series
enDataFrame
en utilisantpandas.Series.to_frame()
- 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 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
- Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
- Comment supprimer une colonne de Pandas DataFrame
- Comment convertir la colonne DataFrame en date-heure dans Pandas
- Comment convertir un float en un entier dans Pandas DataFrame
- Comment trier le DataFrame de Pandas par les valeurs d'une colonne
- Comment obtenir l'agrégat des Pandas par groupe et par somme