在 Pandas 中把物件轉換為浮點型

Manav Narula 2023年1月30日
  1. 在 Pandas 中使用 astype() 方法將物件轉換為 Float
  2. 在 Pandas 中使用 to_numeric() 函式將物件轉換為浮點型
在 Pandas 中把物件轉換為浮點型

在本教程中,我們將重點介紹在 Pandas 中把物件型列轉換為浮點數。物件型列包含一個字串或其他型別的混合,而浮點數包含十進位制值。在本文中,我們將對以下 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())

輸出:

      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

注意列'a'的型別,它是 object 型別。我們將使用 Pandas 中的 pd.to_numeric()astype() 函式將這個物件轉換為 float。

注意
本教程將不涉及 convert_objects() 函式的使用,該函式已被廢棄並刪除。

在 Pandas 中使用 astype() 方法將物件轉換為 Float

Pandas 提供了 astype() 方法,用於將一列轉換為特定型別。我們將 float 傳遞給該方法,並將引數 errors 設定為'raise',這意味著它將為無效值引發異常。例子:

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())

輸出:

<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

在 Pandas 中使用 to_numeric() 函式將物件轉換為浮點型

Pandas 的 to_numeric() 函式可以用來將列表、系列、陣列或元組轉換為數字資料型別,也就是有符號、無符號的整型和浮點數型別。它還有 errors 引數來引發異常。下面是一個使用 to_numeric() 將物件型別轉換為浮點型別的例子。

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())

輸出:

<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 Narula
Manav Narula avatar Manav Narula avatar

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.

LinkedIn

相關文章 - Pandas DataFrame