Converter Pandas Series em DataFrame
-
Converter um único Pandas
Series
paraDataFrame
utilizandopandas.DataFrame()
-
Converter um único Pandas
Series
paraDataFrame
utilizandopandas.Series.to_frame()
-
Converter
Series
de Pandas Múltiplos em Dataframes
A criação de novas colunas a partir da Series
derivada ou existente é uma actividade formidável na engenharia de características. A nova Series
ou coluna recentemente criada pode ser convertida em Dataframe utilizando as funções nativas dos pandas. Neste artigo, vamos introduzir como converter a Series
de Pandas para Dataframe.
Nos exemplos seguintes, trabalharemos no Dataframe criado utilizando o seguinte 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)
Resultado:
a 44
b 47
c 64
d 67
e 67
f 9
g 83
h 21
i 36
j 87
dtype: int64
Converter um único Pandas Series
para DataFrame
utilizando pandas.DataFrame()
A Series
pode ser transformada num Dataframe utilizando como argumento o DataFrame()
Construtor, enviando a Pandas Series
.
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 viu acima, a saída da função retorna um Dataframe.
Converter um único Pandas Series
para DataFrame
utilizando pandas.Series.to_frame()
Esta função converte a dada Pandas Series
para um Dataframe. O nome da coluna pode ser definido com o 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
Pode haver cenários em que a série dada não tem qualquer nome. Em situações como estas, o método reset_index()
pode vir a 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 viu acima, o quadro de dados criado contém uma nova coluna chamada 0
. A coluna chamada 0
pode ser renomeada utilizando o argumento name
que pode ser fornecido à função reset_index()
, como se mostra abaixo.
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
Converter Series
de Pandas Múltiplos em Dataframes
Os exemplos acima referidos demonstraram a capacidade de converter apenas uma única Pandas Series
a um Dataframe. E se houvesse várias Series
, e estas precisassem de ser costuradas juntas para um único Dataframe? Ao criar a Série individual, o dataframe pode ser criado concatenando utilizando a função 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 a função pd.concat()
incluía um argumento axis=1
, que corresponde ao apêndice ao longo da coluna. Se o axis
não for fornecido, haverá uma fusão ou união em linha em todos os Dataframes.
Artigo relacionado - Pandas DataFrame
- Como obter os cabeçalhos da coluna Pandas DataFrame como uma lista
- Como eliminar a coluna Pandas DataFrame
- Como Converter a Coluna DataFrame para DataTempo em Pandas
- Como Converter um Flutuador em um Inteiro em Pandas DataFrame
- Como Classificar Pandas DataFrame pelos Valores de uma Coluna
- Como Obter o Agregado de Pandas Group-By e Sum