Convertir la Series de Pandas en DataFrame
-
Convertir un pandas individual
Series
aDataFrame
usandopandas.DataFrame()
-
Convierte un único pandas
Series
enDataFrame
usandopandas.Series.to_frame()
- Convertir múltiples series de Pandas en DataFrames
La creación de nuevas columnas a partir de las Series
derivadas o existentes es una actividad formidable en la ingeniería de características. La Series
o columna recién creada puede ser convertida en un DataFrame
usando las funciones nativas de los pandas. En este artículo, introduciremos cómo convertir la Series
de Pandas en un DataFrame
.
En los siguientes ejemplos, trabajaremos en el dataframe creado usando el siguiente fragmento.
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)
Resultado:
a 44
b 47
c 64
d 67
e 67
f 9
g 83
h 21
i 36
j 87
dtype: int64
Convertir un pandas individual Series
a DataFrame
usando pandas.DataFrame()
La Series
puede ser transformada en un DataFrame
usando el constructor de DataFrame()
enviando la Series
de Pandas como un argumento.
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"]))
Resultado:
A
a 81
b 37
c 25
d 77
e 72
f 9
g 20
h 80
i 69
j 79
Como se ha visto anteriormente, la salida de la función devuelve un Dataframe.
Convierte un único pandas Series
en DataFrame
usando pandas.Series.to_frame()
Esta función convierte la Series
de Pandas dada en Dataframe. El nombre de la columna se puede establecer con el argumento 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"))
Resultado:
A
a 44
b 47
c 64
d 67
e 67
f 9
g 83
h 21
i 36
j 87
Puede haber escenarios en los que la serie dada no tenga ningún nombre. En situaciones como estas, el método reset_index()
puede ser útil.
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())
Resultado:
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
Como se vio anteriormente, el dataframe creado contiene una nueva columna llamada 0
. La columna llamada 0
puede ser renombrada usando el argumento name
que puede ser proporcionado a la función reset_index()
, como se muestra a continuación.
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"))
Resultado:
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
Convertir múltiples series de Pandas en DataFrames
Los ejemplos anteriores han demostrado la capacidad de convertir una simple Series
de Pandas en Dataframe. ¿Qué pasaría si hubiera varias Series
, y éstas necesitaran ser unidas a un solo Dataframe? Al crear la Series individual, el dataframe puede ser creado por concatenación usando la función 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)
Resultado:
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
Note que la función pd.concat()
incluye un argumento axis=1
, que corresponde al apéndice a lo largo de la columna. Si no se proporciona el axis
, habrá una fusión o unión de filas a través de todos los Dataframes.
Artículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma