Converter Objecto em Float em Pandas
-
Utilize o
astype()
Método de conversão de objectos em Pandas -
Utilize a função
to_numeric()
para converter objecto para float em Pandas
Neste tutorial, centrar-nos-emos na conversão de uma coluna tipo objecto para float em Pandas. Uma coluna do tipo objecto contém um string ou uma mistura de outros tipos, enquanto que a coluna float contém valores decimais. Neste artigo, trabalharemos no seguinte DataFrame.
import pandas as pd
df = pd.DataFrame(
[["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
columns=["a", "b", "c", "d"],
)
print(df)
print("---------------------------")
print(df.info())
Resultado:
a b c d
0 10.0 6 7 8
1 1.0 9 12 14
2 5.0 8 10 6
---------------------------
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 a 3 non-null object
1 b 3 non-null int64
2 c 3 non-null int64
3 d 3 non-null int64
dtypes: int64(3), object(1)
memory usage: 224.0+ bytes
None
Repare no tipo de coluna 'a'
, que é do tipo object
. Converteremos este objecto para float utilizando as funções pd.to_numeric()
e astype()
em Pandas.
convert_objects()
função que é depreciada e removida.Utilize o astype()
Método de conversão de objectos em Pandas
Os Pandas fornecem o método astype()
para converter uma coluna para um tipo específico. Passamos float
para o método e definimos o parâmetro errors
como 'raise'
, o que significa que irá levantar excepções para valores inválidos. Exemplo:
import pandas as pd
df = pd.DataFrame(
[["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
columns=["a", "b", "c", "d"],
)
df["a"] = df["a"].astype(float, errors="raise")
print(df.info())
Resultado:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
a 3 non-null float64
b 3 non-null int64
c 3 non-null int64
d 3 non-null int64
dtypes: float64(1), int64(3)
memory usage: 224.0 bytes
Utilize a função to_numeric()
para converter objecto para float em Pandas
A função Pandas to_numeric()
pode ser utilizada para converter uma lista, uma série, um array, ou um tuple para um datatype numérico, o que significa int assinado, ou int não assinado e tipo float. Também tem o parâmetro errors
para levantar excepções. Um exemplo de conversão do tipo de objecto para float utilizando to_numeric()
é mostrado abaixo:
import pandas as pd
df = pd.DataFrame(
[["10.0", 6, 7, 8], ["1.0", 9, 12, 14], ["5.0", 8, 10, 6]],
columns=["a", "b", "c", "d"],
)
df["a"] = pd.to_numeric(df["a"], errors="coerce")
print(df.info())
Resultado:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 4 columns):
a 3 non-null float64
b 3 non-null int64
c 3 non-null int64
d 3 non-null int64
dtypes: float64(1), int64(3)
memory usage: 224.0 bytes
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedInArtigo 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