pandas用众数填充缺失值_python数据分析包|Pandas-02之缺失值(NA)处理
生活随笔
收集整理的這篇文章主要介紹了
pandas用众数填充缺失值_python数据分析包|Pandas-02之缺失值(NA)处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本篇詳解pandas中缺失值(Missing data handling)處理常用操作。
缺失值處理常用于數據分析數據清洗階段;Pandas中將如下類型定義為缺失值:
NaN: ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’,
‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘’, ‘N/A’, ‘NA’,
‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’,None
缺失值處理常用于數據分析數據清洗階段;Pandas中將如下類型定義為缺失值:
NaN: ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’,
‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘’, ‘N/A’, ‘NA’,
‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’,None
歡迎微信隨緣關注@pythonic生物人
本文將學到什么?
1、pandas中缺失值注意事項 pandas和numpy中任意兩個缺失值不相等(np.nan != np.nan) pandas讀取文件時那些值被視為缺失值2、pandas缺失值操作 pandas.DataFrame中判斷那些值是缺失值:isna方法 pandas.DataFrame中刪除包含缺失值的行:dropna(axis=0) pandas.DataFrame中刪除包含缺失值的列:dropna(axis=1) pandas.DataFrame中刪除包含缺失值的列和行:dropna(how='any') pandas.DataFrame中刪除全是缺失值的行:dropna(axis=0,how='all') pandas.DataFrame中刪除全是缺失值的列:dropna(axis=1,how='all') pandas.DataFrame中使用某個值填充缺失值:fillna(某個值) pandas.DataFrame中使用前一列的值填充缺失值:fillna(axis=1,method='ffill') pandas.DataFrame中使用前一行的值填充缺失值:fillna(axis=0,method='ffill') pandas.DataFrame中使用字典傳值填充指定列的缺失值更好的閱讀體驗請戳:Pandas處理缺失值(NA)
1、pandas中缺失值注意事項
pandas和numpy中任意兩個缺失值不相等(np.nan != np.nan)
下圖中兩個NaN不相等:
In [224]: df1.iloc[3:,0].values#取出'one'列中的NaN Out[224]: array([nan])In [225]: df1.iloc[2:3,1].values#取出'two'列中的NaN Out[225]: array([nan])In [226]: df1.iloc[3:,0].values == df1.iloc[2:3,1].values#兩個NaN值不相等 Out[226]: array([False])pandas讀取文件時那些值被視為缺失值
NaN: ‘’, ‘#N/A’, ‘#N/A N/A’, ‘#NA’, ‘-1.#IND’, ‘-1.#QNAN’,‘-NaN’, ‘-nan’, ‘1.#IND’, ‘1.#QNAN’, ‘<NA>’, ‘N/A’, ‘NA’,‘NULL’, ‘NaN’, ‘n/a’, ‘nan’, ‘null’,None2、pandas缺失值操作
pandas.DataFrame中判斷那些值是缺失值:isna方法
#定義一個實驗DataFrame In [47]: d = {'one': pd.Series([1., 2., 3.], index=['a', 'b', 'c']),'two': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}In [48]: df = pd.DataFrame(d) In [49]: df Out[49]:one two a 1.0 1.0 b 2.0 2.0 c 3.0 3.0 d NaN 4.0In [120]: df.isna()#返回形狀一樣的bool值填充DataFrame Out[120]:one two a False False b False False c False False d True Falsepandas.DataFrame中刪除包含缺失值的行:dropna(axis=0)
In [67]: df Out[67]:one two a 1.0 1.0 b 2.0 2.0 c 3.0 3.0 d NaN 4.0In [68]: df.dropna()#默認axis=0 Out[68]:one two a 1.0 1.0 b 2.0 2.0 c 3.0 3.0pandas.DataFrame中刪除包含缺失值的列:dropna(axis=1)
In [72]: df.dropna(axis=1) Out[72]:two a 1.0 b 2.0 c 3.0 d 4.0pandas.DataFrame中刪除包含缺失值的列和行:dropna(how='any')
In [97]: df['three']=np.nan#新增一列全為NaN In [98]: df Out[98]:one two three a 1.0 1.0 NaN b 2.0 2.0 NaN c 3.0 3.0 NaN d NaN 4.0 NaNIn [99]: df.dropna(how='any') Out[99]: Empty DataFrame#全刪除了 Columns: [one, two, three] Index: []pandas.DataFrame中刪除全是缺失值的行:dropna(axis=0,how='all')
In [101]: df.dropna(axis=0,how='all') Out[101]:one two three a 1.0 1.0 NaN b 2.0 2.0 NaN c 3.0 3.0 NaN d NaN 4.0 NaNpandas.DataFrame中刪除全是缺失值的列:dropna(axis=1,how='all')
In [102]: df.dropna(axis=1,how='all') Out[102]:one two a 1.0 1.0 b 2.0 2.0 c 3.0 3.0 d NaN 4.0pandas.DataFrame中使用某個值填充缺失值:fillna(某個值)
In [103]: df.fillna(666)#使用666填充 Out[103]:one two three a 1.0 1.0 666.0 b 2.0 2.0 666.0 c 3.0 3.0 666.0 d 666.0 4.0 666.0pandas.DataFrame中使用前一列的值填充缺失值:fillna(axis=1,method='ffill')
#后一列填充為fillna(axis=1,method=bfill') In [109]: df.fillna(axis=1,method='ffill') Out[109]:one two three a 1.0 1.0 1.0 b 2.0 2.0 2.0 c 3.0 3.0 3.0 d NaN 4.0 4.0pandas.DataFrame中使用前一行的值填充缺失值:fillna(axis=0,method='ffill')
#后一行填充為fillna(axis=1,method=bfill') In [110]: df.fillna(method='ffill') Out[110]:one two three a 1.0 1.0 NaN b 2.0 2.0 NaN c 3.0 3.0 NaN d 3.0 4.0 NaNpandas.DataFrame中使用字典傳值填充指定列的缺失值
In [112]: df.fillna({'one':666})#填充one列的NaN值 Out[112]:one two three a 1.0 1.0 NaN b 2.0 2.0 NaN c 3.0 3.0 NaN d 666.0 4.0 NaNIn [113]: df.fillna({'three':666}) Out[113]:one two three a 1.0 1.0 666.0 b 2.0 2.0 666.0 c 3.0 3.0 666.0 d NaN 4.0 666.03、參考資料
https://pandas.pydata.org/pandas-docs/stable/reference/frame.html?highlight=missing歡迎微信隨緣關注@pythonic生物人
總結
以上是生活随笔為你收集整理的pandas用众数填充缺失值_python数据分析包|Pandas-02之缺失值(NA)处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作周报002
- 下一篇: 方舟修改服务器代码,方舟生存进化服务器可