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開發框架到什麼程度可以找到開發的工作?

TAG:Python | 數據分析 | 數組 |