在處理資料時,可能會遇到資料型別不一致的問題。例如,通過爬蟲採集到的資料都是整型的資料,在使用資料時希望保留兩位小數點,這時就需要將資料的型別轉換成浮點型。針對這種問題,既可以建立pandas物件時明確指定資料的型別,也可以使用astype()方法和to_numeric()函式進行轉換,具體如下。
一、通過astype()方法強制轉換資料的型別
astype(dtype,copy=true,errors=『raises』,kwargs)**
上述方法中的部分引數表示的含義如下:
1. dtype:表示資料的型別。
2. copy:是否建立副本,預設為true。
3. errors:錯誤採取的處理方式,可以取值為raise或ignore,預設為raise。其中raise表示允許引發異常,ingore表示抑制異常。
接下來通過**演示:
import pandas as pd #建立dataframe物件
jk=pd.dataframe()
jkjk.dtypes
jk['b'].astype(dtype='int') #轉換為int
#errors='ignore』的用法
jk['c'].astype(dtype='int',errors='ignore')
二、通過to_numeric()函式轉換資料型別astype()方法雖然可以轉換資料的型別,但是它存在著一些侷限性,只要待轉換的資料中存在數字以外的字元,在使用astype()方法進行型別轉換時就會出現錯誤,而to_numeric()函式可以解決這個問題。
to_numeric()函式可以將傳入的引數轉換為數值型別,語法如下:
pandas.to_numeric(arg,errors=『raise』,downcast=none)
上述函式中常用引數表示的含義如下:
arg:表示要轉換的資料,可以是list,tuple,series。
errors:錯誤採取的處理方式,引數有:「raise」,「coerce」,「ignore」.
(1)raise:無效的解析將引發異常
(2)coerce:無效的解析設定為nan //這個在astype裡面沒有
(3)ignore:無效的解析將返回輸入
接下來通過**演示:
import pandas as pd #to_numeric轉換的資料是list,tuple,series,不能直接對dataframe轉換
如果不使用該方法會出錯 在Pandas中更改列的資料型別
先看乙個非常簡單的例子 a a 1.2 4.2 b 70 0.03 x 5 0 df pd.dataframe a 有什麼方法可以將列轉換為適當的型別?例如,上面的例子,如何將列2和3轉為浮點數?有沒有辦法將資料轉換為dataframe格式時指定型別?或者是建立dataframe,然後通過某種方法更...
pandas之DataFrame更改資料的列位置
df 是dataframe物件 獲取df物件標題列表 cols list df 調位置 cols.insert 1 cols.pop cols.index 重組df物件排列順序 df df.ix cols ix ix是dataframe索引工具,既可以搜尋單個數值也可以搜尋乙個範圍內的數值,既可以通...
在Pandas中更改列的資料型別 方法總結
先看乙個非常簡單的例子 a a 1.2 4.2 b 70 0.03 x 5 0 df pd.dataframe a 有什麼方法可以將列轉換為適當的型別?例如,上面的例子,如何將列2和3轉為浮點數?有沒有辦法將資料轉換為dataframe格式時指定型別?或者是建立dataframe,然後通過某種方法更...