【Pandas】pandas DataFrame astype

Pandas2.2 DataFrame

Conversion

方法描述
DataFrame.astype(dtype[, copy, errors])用于將 DataFrame 中的數據轉換為指定的數據類型

pandas.DataFrame.astype

pandas.DataFrame.astype 是一個方法,用于將 DataFrame 中的數據轉換為指定的數據類型。這個方法非常有用,特別是在需要將數據從一種類型轉換為另一種類型時,例如將字符串轉換為整數或浮點數。

方法簽名
DataFrame.astype(dtype, copy=True, errors='raise')
參數說明
  • dtype: 字符串、數據類型或字典,表示要轉換的數據類型。可以是單個數據類型(應用于所有列),也可以是字典(指定每列的數據類型)。
  • copy: 布爾值,默認為 True,表示是否返回一個新的 DataFrame 而不是修改原 DataFrame。
  • errors: 字符串,默認為 'raise',表示在轉換過程中遇到錯誤時的行為。可以是 'raise'(引發錯誤)或 'ignore'(忽略錯誤)。
返回值
  • 返回一個新的 DataFrame,其中數據類型已轉換。
示例

假設有一個 DataFrame 如下:

import pandas as pddata = {'A': ['1', '2', '3'],'B': ['1.1', '2.2', '3.3'],'C': ['x', 'y', 'z']
}df = pd.DataFrame(data)
print("原始 DataFrame:")
print(df)
print("\n數據類型:")
print(df.dtypes)

輸出:

原始 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A    object
B    object
C    object
dtype: object
示例1:將所有列轉換為整數類型
try:df_int = df.astype(int)
except ValueError as e:print("錯誤信息:", e)

結果:

錯誤信息: invalid literal for int() with base 10: '1.1'
示例2:將指定列轉換為整數類型
df['A'] = df['A'].astype(int)
print("轉換后的 DataFrame:")
print(df)
print("\n數據類型:")
print(df.dtypes)

結果:

轉換后的 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A      int64
B    object
C    object
dtype: object
示例3:將指定列轉換為不同的數據類型
df_converted = df.astype({'A': int, 'B': float, 'C': 'category'})
print("轉換后的 DataFrame:")
print(df_converted)
print("\n數據類型:")
print(df_converted.dtypes)

結果:

轉換后的 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A           int64
B         float64
C    category
dtype: object
示例4:使用 copy=False 修改原 DataFrame
df.astype({'A': int, 'B': float, 'C': 'category'}, copy=False)
print("修改后的 DataFrame:")
print(df)
print("\n數據類型:")
print(df.dtypes)

結果:

修改后的 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A           int64
B         float64
C    category
dtype: object
示例5:使用 errors='ignore' 忽略轉換錯誤
df_ignored_errors = df.astype({'A': int, 'B': float, 'C': int}, errors='ignore')
print("忽略錯誤后的 DataFrame:")
print(df_ignored_errors)
print("\n數據類型:")
print(df_ignored_errors.dtypes)

結果:

忽略錯誤后的 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A      int64
B    object
C    object
dtype: object

通過這些示例,可以看到 pandas.DataFrame.astype 方法如何將 DataFrame 中的數據轉換為指定的數據類型。這些方法在數據預處理和類型轉換時非常有用。

注意事項
  • astype 方法可以將 DataFrame 中的數據轉換為指定的數據類型。
  • 可以使用單個數據類型(應用于所有列),也可以使用字典(指定每列的數據類型)。
  • 設置 copy=True 返回一個新的 DataFrame,而不會修改原 DataFrame。
  • 設置 copy=False 直接修改原 DataFrame。
  • 設置 errors='raise' 在轉換過程中遇到錯誤時會引發錯誤。
  • 設置 errors='ignore' 在轉換過程中遇到錯誤時會忽略錯誤。
示例代碼及驗證

為了驗證 pandas.DataFrame.astype 方法的效果,可以運行上述示例代碼并查看輸出結果。

import pandas as pd# 創建一個示例 DataFrame
data = {'A': ['1', '2', '3'],'B': ['1.1', '2.2', '3.3'],'C': ['x', 'y', 'z']
}df = pd.DataFrame(data)
print("原始 DataFrame:")
print(df)
print("\n數據類型:")
print(df.dtypes)# 嘗試將所有列轉換為整數類型
try:df_int = df.astype(int)
except ValueError as e:print("錯誤信息:", e)# 將指定列轉換為整數類型
df['A'] = df['A'].astype(int)
print("\n轉換后的 DataFrame:")
print(df)
print("\n數據類型:")
print(df.dtypes)# 將指定列轉換為不同的數據類型
df_converted = df.astype({'A': int, 'B': float, 'C': 'category'})
print("\n轉換后的 DataFrame:")
print(df_converted)
print("\n數據類型:")
print(df_converted.dtypes)# 使用 copy=False 修改原 DataFrame
df.astype({'A': int, 'B': float, 'C': 'category'}, copy=False)
print("\n修改后的 DataFrame:")
print(df)
print("\n數據類型:")
print(df.dtypes)# 使用 errors='ignore' 忽略轉換錯誤
df_ignored_errors = df.astype({'A': int, 'B': float, 'C': int}, errors='ignore')
print("\n忽略錯誤后的 DataFrame:")
print(df_ignored_errors)
print("\n數據類型:")
print(df_ignored_errors.dtypes)
運行結果

運行上述代碼后,你會看到以下輸出:

原始 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A    object
B    object
C    object
dtype: object
錯誤信息: invalid literal for int() with base 10: '1.1'轉換后的 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A      int64
B    object
C    object
dtype: object轉換后的 DataFrame:A    B   C
0  1.0  1.1 NaN
1  2.0  2.2 NaN
2  3.0  3.3 NaN數據類型:
A    float64
B    float64
C    float64
dtype: object轉換后的 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A           int64
B         float64
C    category
dtype: object修改后的 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A           int64
B         float64
C    category
dtype: object忽略錯誤后的 DataFrame:A    B  C
0  1  1.1  x
1  2  2.2  y
2  3  3.3  z數據類型:
A      int64
B    object
C    object
dtype: object

通過這些示例,可以看到 pandas.DataFrame.astype 方法如何將 DataFrame 中的數據轉換為指定的數據類型。這些方法在數據預處理和類型轉換時非常有用。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/77048.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/77048.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/77048.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Johnson

理論 全源最短路算法 Floyd 算法,時間復雜度為 O(n)跑 n 次 Bellman - Ford 算法,時間復雜度是 O(nm)跑 n 次 Heap - Dijkstra 算法,時間復雜度是 O(nmlogm) 第 3 種算法被 Johnson 做了改造,可以求解帶負權邊的全源最短路。 J…

Exce格式化批處理工具詳解:高效處理,讓數據更干凈!

Exce格式化批處理工具詳解:高效處理,讓數據更干凈! 1. 概述 在數據分析、報表整理、數據庫管理等工作中,數據清洗是不可或缺的一步。原始Excel數據常常存在格式不統一、空值、重復數據等問題,影響數據的準確性和可用…

(三十七)Dart 中使用 Pub 包管理系統與 HTTP 請求教程

Dart 中使用 Pub 包管理系統與 HTTP 請求教程 Pub 包管理系統簡介 Pub 是 Dart 和 Flutter 的包管理系統,用于管理項目的依賴。通過 Pub,開發者可以輕松地添加、更新和管理第三方庫。 使用 Pub 包管理系統 1. 找到需要的庫 訪問以下網址&#xff0c…

代碼隨想錄算法訓練營第三十五天 | 416.分割等和子集

416. 分割等和子集 題目鏈接:416. 分割等和子集 - 力扣(LeetCode) 文章講解:代碼隨想錄 視頻講解:動態規劃之背包問題,這個包能裝滿嗎?| LeetCode:416.分割等和子集_嗶哩嗶哩_bilibi…

HTTP 教程 : 從 0 到 1 全面指南 教程【全文三萬字保姆級詳細講解】

目錄 HTTP 的請求-響應 HTTP 方法 HTTP 狀態碼 HTTP 版本 安全性 HTTP/HTTPS 簡介 HTTP HTTPS HTTP 工作原理 HTTPS 作用 HTTP 與 HTTPS 區別 HTTP 消息結構 客戶端請求消息 服務器響應消息 實例 HTTP 請求方法 各個版本定義的請求方法 HTTP/1.0 HTTP/1.1 …

spring功能匯總

1.創建一個dao接口,實現類;service接口,實現類并且service里用new創建對象方式調用dao的方法 2.使用spring分別獲取dao和service對象(IOC) 注意 2中的service里面獲取dao的對象方式不用new的(DI) 運行測試: 使用1的方式創建servic…

Vue.js 實現下載模板和導入模板、數據比對功能核心實現。

在前端開發中,數據比對是一個常見需求,尤其在資產管理等場景中。本文將基于 Vue.js 和 Element UI,通過一個簡化的代碼示例,展示如何實現“新建比對”和“開始比對”功能的核心部分。 一、功能簡介 我們將聚焦兩個核心功能&…

volatile關鍵字用途說明

volatile 關鍵字在 C# 中用于指示編譯器和運行時系統,某個字段可能會被多個線程同時訪問,并且該字段的讀寫操作不應被優化(例如緩存到寄存器或重排序),以確保所有線程都能看到最新的值。這使得 volatile 成為一種輕量級…

【區塊鏈安全 | 第三十五篇】溢出漏洞

文章目錄 溢出上溢示例溢出漏洞溢出示例漏洞代碼代碼審計1. deposit 函數2. increaseLockTime 函數 攻擊代碼攻擊過程總結修復建議審計思路 溢出 算術溢出(Arithmetic Overflow),簡稱溢出(Overflow),通常分…

百度的deepseek與硅基模型的差距。

問題: 已經下載速度8兆每秒,請問下載30G的文件需要多長時間? 關于這個問題。百度的回答如下: ?30GB文件下載時間計算? ?理論計算?(基于十進制單位): ?單位換算? 文件大小:3…

車載診斷架構 --- 特殊定義NRC處理原理

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 周末洗了一個澡,換了一身衣服,出了門卻不知道去哪兒,不知道去找誰,漫無目的走著,大概這就是成年人最深的孤獨吧! 舊人不知我近況,新人不知我過…

面試題ing

1、js中set和map的作用和區別? 在 JavaScript 中,Set 和 Map 是兩種非常重要的集合類型 1、Set 是一種集合數據結構,用于存儲唯一值。它類似于數組,但成員的值都是唯一的,沒有重復的值。Set 中的值只能是唯一的,任何…

Python爬蟲第6節-requests庫的基本用法

目錄 前言 一、準備工作 二、實例引入 三、GET請求 3.1 基本示例 3.2 抓取網頁 3.3 抓取二進制數據 3.4 添加headers 四、POST請求 五、響應 前言 前面我們學習了urllib的基礎使用方法。不過,urllib在實際應用中存在一些不便之處。以網頁驗證和Cookies處理…

Go 學習筆記 · 進階篇 · 第一天:接口與多態

🐶Go接口與多態:繼承沒了,但自由炸裂! 最近翻 Go 的代碼,突然看到這么一段: type Animal interface {Speak() string }我一愣,咦?這不就是 Java 里常見的“接口”嗎? …

信息學奧賽一本通 1929:【04NOIP普及組】火星人 | 洛谷 P1088 [NOIP 2004 普及組] 火星人

【題目鏈接】 ybt 1929&#xff1a;【04NOIP普及組】火星人 洛谷 P1088 [NOIP 2004 普及組] 火星人 【題目考點】 1. 深搜回溯 2. STL next_permutation函數 頭文件<algorithm> 函數定義&#xff1a;next_permutation(lb, ub, cmp) lb&#xff1a;區間下界&#xff…

借助 AI 工具使用 Python 實現北京市店鋪分布地理信息可視化教程

一、項目概述 本項目通過 Python 的pyecharts庫&#xff0c;結合 AI 工具輔助代碼編寫與邏輯梳理&#xff0c;實現北京市店鋪數量分布及區域連線的地理信息可視化&#xff0c;最終生成交互式地圖圖表。 二、準備工作 1. 環境與工具 Python 環境&#xff1a;確保已安裝 Pyth…

Python項目打包指南:PyInstaller與SeleniumWire的兼容性挑戰及解決方案

前言 前段時間做一個內網開發的需求&#xff0c;要求將selenium程序打包成.exe放在內網的win7上運行&#xff0c;在掘金搜了一圈也沒有發現相關文章&#xff0c;因此將過程中踩到的坑記錄分享一下。 本文涵蓋了具體打包操作、不同模塊和依賴項的兼容性解決方案&#xff0c;以…

(一)棧結構、隊列結構

01-線性結構-數組-棧結構 線性結構&#xff08;Linear List)是由n&#xff08;n>0)個數據元素&#xff08;結點&#xff09; a[0], a[1], a[2], a[3],...,a[n-1]組成的有限序列 數組 通常數組的內存是連續的&#xff0c;所以在知道數組下標的情況下&#xff0c;訪問效率是…

【學Rust寫CAD】35 alpha_mul_256(alpha256.rs補充方法)

源碼 // Calculates (value * alpha256) / 255 in range [0,256], // for [0,255] value and [0,256] alpha256. pub fn alpha_mul_256(self,value: u32) -> Alpha256 {let prod value * self.0;Alpha256((prod (prod >> 8)) >> 8) }代碼分析 這個函數 alph…

C# 與 相機連接

一、通過組件連接相機 需要提前在VisionPro里面保存一個CogAcqFifoTool相機工具為 .vpp 定義一個相機工具 CogAcqFifoTool mAcq null;將保存的相機工具放入mAcq中 string path “C:\Acq.vpp”; mAcq (CogAcqFifoTool)CogSerializer.LoadObjectFrommFile(path);給窗口相機…