Converti Pandas Series in DataFrame
-
Converti una singola
Seriesdi Pandas inDataFrameutilizzandopandas.DataFrame() -
Converti una singola
Seriesdi Pandas inDataFrameutilizzandopandas.Series.to_frame() - Convertire multiple Pandas Series in dataframes
La creazione di colonne più recenti dalla Series derivata o esistente è un’attività formidabile nell’ingegneria delle caratteristiche. La Series o la colonna appena creata può essere convertita in Dataframe utilizzando le funzioni native dei pandas. In questo articolo, introdurremo come convertire la Series di Pandas in Dataframe.
Negli esempi seguenti, lavoreremo sul dataframe creato utilizzando il seguente snippet.
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)
Produzione:
a 44
b 47
c 64
d 67
e 67
f 9
g 83
h 21
i 36
j 87
dtype: int64
Converti una singola Series di Pandas in DataFrame utilizzando pandas.DataFrame()
La Series può essere trasformata in un Dataframe usando il costruttore DataFrame() inviando la Series di Pandas come argomento.
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"]))
Produzione:
A
a 81
b 37
c 25
d 77
e 72
f 9
g 20
h 80
i 69
j 79
Come visto sopra, l’output della funzione restituisce un Dataframe.
Converti una singola Series di Pandas in DataFrame utilizzando pandas.Series.to_frame()
Questa funzione converte la Series di Pandas data in un Dataframe. Il nome della colonna può essere impostato con l’argomento 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"))
Produzione:
A
a 44
b 47
c 64
d 67
e 67
f 9
g 83
h 21
i 36
j 87
Possono esserci scenari in cui la serie data non ha alcun nome. In situazioni come queste, il metodo reset_index() può tornare 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())
Produzione:
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
Come visto sopra, il dataframe creato contiene una nuova colonna denominata 0. La colonna denominata 0 può essere rinominata utilizzando l’argomento name che può essere fornito alla funzione reset_index(), come mostrato di seguito.
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"))
Produzione:
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
Convertire multiple Pandas Series in dataframes
Gli esempi precedenti hanno dimostrato la capacità di convertire una sola Series di Pandas in un Dataframe. E se ci fossero più Series, e queste devono essere unite insieme a un singolo Dataframe? Dopo aver creato la singola serie, il dataframe può essere creato concatenando utilizzando la funzione 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)
Produzione:
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
Nota che la funzione pd.concat() includeva un argomento axis=1, che corrisponde all’appendice lungo la colonna. Se axis non è fornito, ci sarà un’unione o un’unione di righe su tutti i Dataframe.
Articolo correlato - Pandas DataFrame
- Come ottenere le intestazioni delle colonne DataFrame Pandas come lista
- Come cancellare la colonna DataFrame Pandas DataFrame
- Come convertire la colonna DataFrame in data e ora in pandas
- Converti un Float in un Integer in Pandas DataFrame
- Ordina Pandas DataFrame in base ai valori di una colonna
- Ottieni l'aggregato di Pandas Group-By e Sum