Python:數據類型轉換與空值處理



Python:int,float,str之間的轉換

數據類型轉換

數據轉換
主要介紹int,float,str之間的相互轉換,轉換方向見上圖.

其它數據轉換的內置函數

python各種類型轉換-int,str,char,float,ord,hex,oct等_Python_sunlylorn的專欄-CSDN博客

Pandas中數據列含空字符串的處理

為了便於說明,以數據框A為例,


import numpy as np
import pandas as pd
#為了便於描述先構造出一個數據框
A=pd.DataFrame({'A':[1,2,3,np.nan,1],"D":list('asdas')})
A=A.astype('str')#然后全部全換成str
A['B']=A['A'].astype('float')#然后再將數值列('A')轉回
A

  • 查看對應的位置的空值
#字符串下的空值
print(f"A.loc[3,'A'],輸出結果:{A.loc[3,'A']}('nan')")
#數值下的空值
print(f"A.loc[3,'B'],輸出結果:{A.loc[3,'B']}(nan)")
  • 判斷是否是空值?
#(1)判斷是不是空值
print(f'第一種方法:{A.loc[3,"B"]==np.nan}')
#(2)使用內置函數檢查
print(f"第二種方法:{A['B'].isna().tolist()}")#存在

判斷是否是空值

令人驚訝的是:第一種方法下兩者居然不相等。然后使用type函數進行查看:

一個是<np.float64>,另一個是 。雖然通過 np.float可以將前者轉換成 ,兩者的結果都是 ,但是它倆仍不相等。

最主要的原因是:參考鏈接

np.nan不是一個“空”對象,用 np.nan is None判斷是False;這種情況下判斷空值只能用np.isna()(或者pd.isnull())
這也引出的一個新問題:數據框創建時的空值應該用np.nan還是None?

數據框創建時的空值應該用np.nan還是None?

與上面的情況類似,就算用None也會出現類似的問題,如下圖所示。


np.nan或者None創建了數據框,但是使用數據框切片的方法,發現兩者居然不相等,真的是匪夷所思。
numpy 學習匯總38- 缺失數據,數據異常,NaN& None的區別( 初步學習 tcy)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM