Pandas Series用if判斷缺損值並修改,不影響原有空間
一維數組
向量相加缺損值處理,
Numpy會無法計算,直接報錯。
Pandas不影響代碼執行,會繼續計算,缺損值為空值。
用Pandas配合if。。。else就可以直接判斷缺損值並修改。可以直接繼續運行下面的代碼,不至於半路當機。
.dropna()和.add(,fill_value=0)的方法都是新建數組,不改變原有空間的值
【Numpy】
a=np.array([2,3,4,5])
b=np.array([1,2,3])
a+b
---------------------------------------------------------------------------
運行結果:無法計算,直接報錯。---------------------------------------------------------------------------ValueError Traceback (most recent call last)<ipython-input-13-ca730b97bf8a> in <module>()----> 1 a+bValueError: operands could not be broadcast together with shapes (4,) (3,)
【Pandas】
s1=pd.Series([1,2,3,4],index=[a,b,c,d])
s2=pd.Series([10,20,30,40],index=[a,b,e,f])
s3=s1+s2
print(刪除缺損值前的s3
,s3)
#方法一:s3.dropna()刪除缺失值
#判斷pandas 的Series數組中每一個元素是否有空值,如果有空值,則為true,執行if的代碼。
if s3.isnull().any():
s4=s3.dropna()
print(
方法一:
用s3.dropna()刪除缺失值後賦值的s4
,s4)
print(
用s3.dropna()刪除缺失值後的s3沒有變化
,s3)
#方法二:s4=s1.add(s2,fill_value=0)刪除缺失值
if s3.isnull().any():
s5=s1.add(s2,fill_value=0)
print(
方法二:
用s5=s1.add(s2,fill_value=0)刪除缺失值後賦值的s5
,s5)
print(
用s3=s1.add(s2,fill_value=0)刪除缺失值後的s3沒有變化
,s3)
print(.dropna()和.add(,fill_value=0)的方法都是新建數組,不改變原有空間的值)
---------------------------------------------------------------------------
運行結果:
刪除缺損值前的s3
a 11.0
b 22.0
c NaN
d NaN
e NaN
f NaN
dtype: float64
方法一:
用s3.dropna()刪除缺失值後賦值的s4
a 11.0
b 22.0
dtype: float64
用s3.dropna()刪除缺失值後的s3沒有變化
a 11.0
b 22.0
c NaN
d NaN
e NaN
f NaN
dtype: float64
方法二:
用s5=s1.add(s2,fill_value=0)刪除缺失值後賦值的s5
a 11.0
b 22.0
c 3.0
d 4.0
e 30.0
f 40.0
dtype: float64
用s3=s1.add(s2,fill_value=0)刪除缺失值後的s3沒有變化
a 11.0
b 22.0
c NaN
d NaN
e NaN
f NaN
dtype: float64
.dropna()和.add(,fill_value=0)的方法都是新建數組,不改變原有空間的值
封面圖來自#王俊凱# #TFBOYS王俊凱# #tfboys# 150325Q…-堆糖,美好生活研究所
推薦閱讀:
※黃哥推薦的八本數據結構和演算法(Python描述)書。
※今天不如來複習下Python基礎
※爬取豆瓣有關張國榮日記(二)—— 策略源碼知識點
※『簡單的』Python 元類
※學Python web開發框架到什麼程度可以找到開發的工作?