'''
上期回顧:
學習對DataFrame數(shù)據(jù)記錄進行各項選擇前的初步和整體的了解由缆。
本次:
我們將學習對DataFrame數(shù)據(jù)記錄進行的各種選擇征堪!
因為2019-12-16(二)我們有在DataFrame中修改了數(shù)據(jù)集的索引index的值羡榴,所以我們利用2019-12-13(一)所學的知識蚕甥,重新將數(shù)據(jù)導入到DataFrame中
'''
##Pandas:數(shù)據(jù)分析包
import pandas as pd?
#numpy:科學計算包
import numpy? as np
#xlwings:python操作Excel的模塊躏惋,最好的Excel操作包之一发框,有取代VBA的趨勢
import xlwings as xw
#聲明Excel應用程序,及workboos文件路徑
file= r'D:\VBA\LEARNING_ERP.xlsm'?
wb=xw.Book(file)
wb.app.display_alerts=False
#“view”作為存放結果數(shù)據(jù)集的sheet表
sht_view=wb.sheets['view']
##“基礎表”作為存放原始數(shù)據(jù)集的sheet表
sht_base=wb.sheets['基礎表']
##選中employee 所在的區(qū)域,第25行第1列
range_employee=sht_base[25,1].api.currentregion
##命名區(qū)域
range_employee.name='range_employee'
##導入Dataframe
df_employee=sht_base['range_employee'].options(pd.DataFrame, header=1,index=True).value
##index=True,指示使用原始數(shù)據(jù)集中的索引默認第一列伸辟,而不是使用自動索引
##header=1价认,指示使用原始數(shù)據(jù)集中的第一列作為列名,而不是使用自動列名自娩,更多使用方法,將在后面陸續(xù)介紹。
'''按F5運行程序忙迁,然后在IDE右下方的即時窗口In:后面輸入print(df_employee)脐彩,按回車,顯示如下:'''
##切入本次的正題了姊扔!
#判斷元素中有沒有空值
df_employee.isnull()
df_employee.isna()
# isna() 和?isnull() 對于空值的判斷結果是一樣的惠奸。就像男生女生相處,不舍得花時間或者不舍得花錢在對方身上恰梢,那一定不是很喜歡他/她的!????至少此刻“情況屬實”佛南。
#判斷元素中有沒有空值,除了用isna() 和?isnull() 嵌言,也可以用反向指標notna()和notnull,即:如果他/她不吝嗇花時間和錢在她/他身上嗅回,那一定是喜歡她/他的,至少此刻是這樣的摧茴。
'''
如果只是想看有哪些列有空值绵载,可以這樣做,df_employee.isnull().any() 只要該列中有一個是空值苛白,該列就返回True;df_employee.notnull().all()該列中全部是非空值娃豹,該列才返回True。
'''
df_employee.isnull().any()
df_employee.notnull().all()
#姓名列全部為非空值购裙,所以.isnull().any()返回False懂版,而工齡列,張五有一個空值躏率,所以返回True
#姓名列全部為非空值,所以notnull().all()返回True躯畴,而工齡列,張五有一個空值禾锤,所以返回False私股。
#大家也可以試一下df_employee.isna().any() 和df_employee.notna().all(),用法一樣恩掷。
#也可以對特定的一列或數(shù)列進行上述操作倡鲸,如df_employee['特點'].isnull(),df_employee['特點'].isnull().any()黄娘。
'''
df_employee[['特點','年齡']].isnull().any()峭状,記得對多列進行操作時,要把列名放在[]里面逼争,即有兩個中括號优床,如:[['特點','年齡']]
'''
'''
也可以對特定的一行或數(shù)行進行上述操作,loc[行的索引值,列名]是根據(jù)索引值和列名來進行選擇的誓焦,iloc[:,:]是根據(jù)行的位置和列的位置來進行選擇的,下面iloc[0:2,:].isnull().any()是判斷第1-2行中有沒有空值胆敞,行的上限從0開始,0:2,包括上限0,不包括下限2 移层,:列前后為空仍翰,表示全選。
'''
df_employee.iloc[0:2,:].isnull().any()
#loc和iloc,我們會在后面作較為詳細的介紹观话,看下面的例子予借,在這里,大家只要有一個初步認識就可以
#*****
Ps:
小樂:感覺有點復雜啊频蛔,頭都有點暈了灵迫!
小欣:頭暈證明你有用心在學!“暈了晦溪,多想一想瀑粥,多練一練、再想一想”尼变,這樣反復循環(huán)后利凑,你就會越來越精通啦!
小樂:Python看起來很美嫌术,但精通好像有點難呢哀澈!
小欣:學習曲線越陡峭,投入的時間-收益比度气,就越大割按!想想看,如果你相親的對象條件越好(如:家庭磷籍、見識适荣、志向、興趣院领、愛好弛矛、職業(yè)、品味... ...),是不是越不容易和你“閃婚”比然,然而丈氓,一但你們“永結同心后”,你的人生是不是邁入到更美妙的境界呢强法?婚姻是人生重要的選擇万俗,是重生的第二次機會。正如開掛的人生里饮怯,學習高效辦公闰歪、自動化辦公你選——一定要選Python!從繁雜的事務中解放出來蓖墅,有更多的時間用來開掛你的人生库倘!
#*****