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)