Pandas-Reihe in DataFrame umwandeln
-
Konvertieren einer einzelnen Pandas
Series
inDataFrame
mitpandas.DataFrame()
-
Konvertieren einer einzelnen Pandas
Series
in einen DataFrame mitpandas.Series.to_frame()
- Mehrere Pandas-Serien in Dataframes konvertieren
Die Erstellung neuer Spalten aus den abgeleiteten oder bestehenden Series
ist eine anspruchsvolle Tätigkeit im Feature Engineering. Die neu erstellte Series
oder Spalte kann mit Hilfe der nativen Funktionen von Pandas in einen Dataframe konvertiert werden. In diesem Artikel stellen wir vor, wie man Pandas Series
in Dataframe konvertiert.
In den folgenden Beispielen werden wir mit dem Dataframe arbeiten, der mit dem folgenden Snippet erstellt wurde.
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)
Ausgabe:
a 44
b 47
c 64
d 67
e 67
f 9
g 83
h 21
i 36
j 87
dtype: int64
Konvertieren einer einzelnen Pandas Series
in DataFrame
mit pandas.DataFrame()
Die Series
kann mit dem DataFrame()
-Konstruktor in einen Dataframe umgewandelt werden, indem die Pandas Series
als Argument übergeben wird.
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"]))
Ausgabe:
A
a 81
b 37
c 25
d 77
e 72
f 9
g 20
h 80
i 69
j 79
Wie oben gesehen, liefert die Ausgabe der Funktion einen Dataframe.
Konvertieren einer einzelnen Pandas Series
in einen DataFrame mit pandas.Series.to_frame()
Diese Funktion konvertiert die angegebene Pandas Series
in einen Dataframe. Der Name der Spalte kann mit dem Argument name
gesetzt werden.
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"))
Ausgabe:
A
a 44
b 47
c 64
d 67
e 67
f 9
g 83
h 21
i 36
j 87
Es kann Szenarien geben, in denen die gegebene Serie keinen Namen hat. In solchen Situationen kann die Methode reset_index()
hilfreich sein.
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())
Ausgabe:
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
Wie oben zu sehen, enthält der erstellte Dataframe eine neue Spalte mit dem Namen 0
. Die Spalte mit dem Namen 0
kann mit dem Argument name
umbenannt werden, das der Funktion reset_index()
übergeben werden kann, wie unten gezeigt.
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"))
Ausgabe:
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
Mehrere Pandas-Serien in Dataframes konvertieren
Die obigen Beispiele haben die Fähigkeit demonstriert, nur eine einzelne Pandas Series
in einen Dataframe zu konvertieren. Was wäre, wenn es mehrere Series
gäbe und diese zu einem einzigen Dataframe zusammengefügt werden müssten? Nach der Erstellung der einzelnen Serien kann der Dataframe durch Verkettung mit der Funktion concat()
erstellt werden.
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)
Ausgabe:
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
Beachten Sie, dass die Funktion pd.concat()
ein Argument axis=1
enthält, das dem Anhängen entlang der Spalte entspricht. Wenn axis
nicht angegeben wird, erfolgt eine Zeilenverschmelzung oder Vereinigung über alle Dataframes.
Verwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum