Python更改數據類型——astype()方法和to_numeric()函數

文章目錄

  • 明確指定數據的類型
    • 通過dtypes屬性進行查看
    • 創建Pandas對象指定數據類型
  • 轉換數據類型
    • 通過astype()方法強制轉換數據的類型
    • 通過to_numeric()函數轉換數據類型


明確指定數據的類型

通過dtypes屬性進行查看

import pandas as pddf = pd.DataFrame({'A': ['1', '2', '4'],'B': ['9', '-80', '5.3'],'C': ['x', '5.9', '0']})
print("df.dtypes:\n", df.dtypes)
print("df:\n", df)

輸出結果:

df.dtypes:A    object
B    object
C    object
dtype: object
df:A    B    C
0  1    9    x
1  2  -80  5.9
2  4  5.3    0

創建Pandas對象指定數據類型

data = pd.DataFrame({'A': ['1', '2', '4'],'B': ['9', '80', '5']},dtype='int')
print("data:\n", data)
print("data.dtypes:\n", data.dtypes)

輸出結果:

data:A   B
0  1   9
1  2  80
2  4   5
data.dtypes:A    int32
B    int32
dtype: object

轉換數據類型

通過astype()方法強制轉換數據的類型

astype(dypte, copy=True, errors = ‘raise’, **kwargs)

上述方法中部分參數表示的含義如下:

dtype:表示數據類型

copy:是否建立副本,默認為True

errors:錯誤采取的處理方式,可以取值為raise或ignore,默認為raise。其中raise表示允許引發異常,ignore表示抑制異常。


運用astype()方法將DataFrame對象df中B列數據的類型轉換為int類型:

print("df['B']:\n", df['B'])
print("df['B'].astype:\n", df['B'].astype(dtype='float'))
df['B']:0      9
1    -80
2    5.3
Name: B, dtype: object
df['B'].astype:0     9.0
1   -80.0
2     5.3
Name: B, dtype: float64

之所以沒有將所有列進行類型轉換是因為C列中有非數字類型的字符,無法將其轉換為int類型,若強制轉換會出現ValueError異常。(當參數errors取值ignore時可以抑制異常,但抑制異常后輸出結果仍是未轉換類型之前的對象——也就是并未進行數據類型轉換的操作,只是不會報錯罷了

print("df['C']:\n", df['C'])
print("df['C'].astype(errors='ignore'):\n", df['C'].astype(dtype='float', errors='ignore'))

輸出結果:

df['C']:0      x
1    5.9
2      0
Name: C, dtype: object
df['C'].astype(errors='ignore'):0      x
1    5.9
2      0
Name: C, dtype: object

通過to_numeric()函數轉換數據類型

to_numeric()函數不能直接操作DataFrame對象

pandas.to_numeric(arg, errors=‘raise’, downcast=None)

上述函數中常用參數表示的含義如下:

arg:表示要轉換的數據,可以是list、tuple、Series

errors:錯誤采用的處理方式可以取值除raise、ignore外,還可以取值coerce,默認為raise。其中raise表示允許引發異常,ignore表示抑制異常。

to_numeric()函數較之astype()方法的優勢在于解決了后者的局限性:只要待轉換的數據中存在數字以外的字符,在使用后者進行類型轉換時就會出現錯誤,而to_numeric()函數之所以可以解決這個問題,就源于其errors參數可以取值coerce——當出現非數字字符時,會將其替換為缺失值之后進行數據類型轉換。


se = pd.Series(df['A'])
se1 = pd.Series(df['B'])
se2 = pd.Series(df['C'])
print("df['A']:\n", df['A'])
print("to_numeric(df['A']):\n", pd.to_numeric(se))
print("df['B']:\n", df['B'])
print("to_numeric(df['B']):\n", pd.to_numeric(se1))
print("df['C']:\n", df['C'])
print("to_numeric(df['C'], errors='ignore'):\n", pd.to_numeric(se2, errors='ignore'))
print("to_numeric(df['C'], errors='coerce'):\n", pd.to_numeric(se2, errors='coerce'))

輸出結果:

df['A']:0    1
1    2
2    4
Name: A, dtype: object
to_numeric(df['A']):0    1
1    2
2    4
Name: A, dtype: int64
df['B']:0      9
1    -80
2    5.3
Name: B, dtype: object
to_numeric(df['B']):0     9.0
1   -80.0
2     5.3
Name: B, dtype: float64
df['C']:0      x
1    5.9
2      0
Name: C, dtype: object
to_numeric(df['C'], errors='ignore'):0      x
1    5.9
2      0
Name: C, dtype: object
to_numeric(df['C'], errors='coerce'):0    NaN
1    5.9
2    0.0
Name: C, dtype: float64

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

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

相關文章

不騙你,沒讀這一篇,你不可能懂二分

上篇文章講動態規劃獲得了80k瀏覽,這次的二分也值得你們一看,這個系列是特別用心寫的,準備出書的哦 動態規劃 3.0 引子 圖書館自習的時候,一女生背著一堆書進閱覽室,結果警報響了,大媽讓女生看是哪本書把警報弄響了,女生把書倒出…

Python之數據合并——【concat()函數、merge()函數、join()方法、combine_first()方法】

文章目錄軸向堆疊數據——concat()函數橫向堆疊與外連接縱向堆疊與內連接主鍵合并數據——merge()函數內連接方式外連接方式左連接方式右連接方式其他根據行索引合并數據——join()方法四種連接方式行索引與列索引重疊合并重疊數據——combine_first()方法軸向堆疊數據——conc…

超硬核!操作系統學霸筆記,考試復習面試全靠它

之后會發布基于基礎知識的大部分算法的模擬代碼合集,敬請關注。 進程基礎 進程的基本概念 程序順序執行的特征: 1)順序性:處理機嚴格按照程序所規定的順序執行,每一步操作必須在下一步操作開始前執行 2)封…

配置tomcat6.0的HTTPS(單向)

利用JDK自帶的產生證書的工具 生成證書 建立一個腳本文件,內容如下: set SERVER_DN"CNServer, OUshare, Oshare, Lsz, Sgd, CCN" set CLIENT_DN"CNClient, OUshare, Oshare, Lsz, Sgd, CCN" set KS_PASS-storepass changeit set KE…

Python之數據重塑——【stack()方法和unstack()方法、pivot()方法】

文章目錄重塑層次化索引對于單層索引的DataFrame類對象stack()方法unstack()方法對于多層索引的DataFrame類對象辨析操作內層索引與外層索引的區別查看多層索引對象轉換后的類型軸向旋轉——pivot()方法重塑層次化索引 Pandas中重塑層次化索引的操作主要是stack()方法和unstac…

超硬核!學霸把操作系統經典算法給敲完了!要知行合一

上期的筆記,瀏覽快1萬了,既然關注的人很多,那就發出來承諾過的算法全模擬,希望幫到你們。 上期的操作系統學霸筆記,考試復習面試全靠它 一、模擬進程調度 功能 data.h #ifndef _Data_h_ #define _Data_h_#include …

Python之數據轉換——【rename()方法、cut()函數、get_dummies()函數】

文章目錄重命名軸索引離散化連續數據啞變量處理類別型數據重命名軸索引 rename( self, mapper: Optional[Renamer] None, *, index: Optional[Renamer] None, columns: Optional[Renamer] None, axis: Optional[Axis] None, copy: bool True, inplace: bool False, level…

超硬核!數據結構學霸筆記,考試面試吹牛就靠它

上次發操作系統筆記,很快瀏覽上萬,這次數據結構比上次硬核的多哦,同樣的會發超硬核代碼,關注吧。 超硬核!操作系統學霸筆記,考試復習面試全靠它 第一次筆記(復習c,課程概述&#xff…

Python之數據拆分——groupby()方法

文章目錄groupby()方法通過列名進行分組通過Series對象進行分組Series對象與原數據的行索引長度相等Series對象與原數據的行索引長度不等通過字典進行分組按照columns軸的方向進行分組按照index軸的方向進行分組通過函數進行分組groupby()方法 groupby( self, byNone, axis0, l…

超硬核!小白讀了這篇文章,就能在算法圈混了

作為一只超級硬核的兔子,從來不給你說廢話,只有最有用的干貨!這些神級算法送給你 目錄 第一節 1.1bogo排序 1.2位運算 1.3打擂臺 1.4morris遍歷 第二節 2.1睡眠排序 2.2會死的兔子 2.3矩陣快速冪 2.4摔手機/摔雞蛋 時空復雜度目錄 …

Python之數據聚合——aggregate()方法

文章目錄使用內置統計方法聚合數據面向列的聚合方法aggregate()方法對每一列數據應用同一個函數對某列數據應用不同的函數對不同列數據應用不同函數使用內置統計方法聚合數據 實現數據拆分成組并分別計算平均數的操作 代碼: import pandas as pd import numpy as…

超硬核十萬字!全網最全 數據結構 代碼,隨便秒殺老師/面試官,我說的

本文代碼實現基本按照《數據結構》課本目錄順序,外加大量的復雜算法實現,一篇文章足夠。能換你一個收藏了吧? 當然如果落下什么了歡迎大家評論指出 目錄 順序存儲線性表實現 單鏈表不帶頭標準c語言實現 單鏈表不帶頭壓縮c語言實現 約瑟…

Python之分組級運算——【transform()方法、apply()方法】

文章目錄數據轉換——transform()方法數據應用——apply()方法數據轉換——transform()方法 使用aggregate()方法進行聚合運算已經在上一篇博客中詳細闡述,我們知道aggregate()方法返回的數據集的形狀(shape)與被分組的數據集的形狀是不同的…

java限制在同一臺電腦上只允許有一個用戶登錄系統

在web應用系統中,出于安全性考慮,經常需要對同一客戶端登錄的用戶數量和一個客戶同時在多個客戶端登陸進行限制。 具體一點就是: 1、在同一臺電腦上一次只允許有一個用戶登錄系統; 2、一個用戶在同一時間只允許在一個客戶端登錄…

Matplotlib——繪制圖表

文章目錄通過figure()函數創建畫布通過subplot()函數創建單個子圖通過subplots()函數創建多個子圖通過add_subplot()方法添加和選中子圖添加各類標簽繪制常見圖表繪制直方圖——hist()函數繪制散點圖——scatter()函數繪制柱狀圖——bar()函數設定線條的相關參數本地保存圖片通…

限制在同一臺電腦上只允許有一個用戶登錄系統

在web應用系統中,出于安全性考慮,經常需要對同一客戶端登錄的用戶數量和一個客戶同時在多個客戶端登陸進行限制。 具體一點就是: 1、在同一臺電腦上一次只允許有一個用戶登錄系統; 2、一個用戶在同一時間只允許在一個客戶端登錄…

Seaborn——繪制統計圖形

文章目錄可視化數據的分布繪制單變量分布繪制雙變量分布繪制成對的雙變量分布用分類數據繪圖類別散點圖通過stripplot()函數畫散點圖swarmplot()函數類別內的數據分布繪制箱型圖繪制提琴圖類別內的統計估計繪制條形圖繪制點圖可視化數據的分布 繪制單變量分布 一般采用最簡單…

Bokeh——交互式可視化庫

文章目錄前言如何通過Plotting繪制圖形前言 Bokeh是一個專門針對Web瀏覽器使用的交互式可視化庫,這是與其他可視化庫相比最核心的區別。 如何通過Plotting繪制圖形 Plotting是以構建視覺符號為核心的接口,可以結合各種視覺元素(例如&#x…

指針、引用以及const限定符、constexpr限定符

文章目錄復合類型引用概念與使用引用的定義注意指針概念聲明方式取地址符指針值空指針利用指針訪問對象賦值和指針void* 指針指向指針的指針指向指針的引用初始化所有指針有多重含義的某些符號const限定符概念const的引用指針和const頂層const和底層constconstexpr和常量表達式…

關鍵字typedef、關鍵字using、auto類型說明符和declytpe類型指示符

文章目錄類型別名概念關鍵字 typedef別名聲明 (alias declaration) using指針、常量和類型別名類型別名簡化多維數組指針auto類型說明符概念復合類型、常量和autodecltype類型指示符概念decltype和引用類型別名 概念 有兩種方法可用于定義類型別名。 關鍵字 typedef typede…