Convertir la Series de Pandas en DataFrame

Sathiya Sarathi 30 enero 2023
  1. Convertir un pandas individual Series a DataFrame usando pandas.DataFrame()
  2. Convierte un único pandas Series en DataFrame usando pandas.Series.to_frame()
  3. Convertir múltiples series de Pandas en DataFrames
Convertir la Series de Pandas en DataFrame

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

Artículo relacionado - Pandas Series