DataFrame的比較和缺失值比較

2021-10-19 11:41:50 字數 4914 閱讀 2924

# pandas使用numpy nan(np.nan)物件表示缺失值。這是乙個不等於自身的特殊物件

np.nan == np.nan

#false

# python的none物件是等於自身的

none == none

#true

# 所有和np.nan的比較都返回false,除了不等於:

9 > np.nan

#false

5 != np.nan

#true

# college_ugds_所有值和.0019比較,返回布林值dataframe

college = pd.read_csv('data/college.csv', index_col='instnm')

college_ugds_ = college.filter(like='ugds_')

college_ugds_.head() == .0019

ugds_white

ugds_black

ugds_hisp

ugds_asian

ugds_aian

ugds_nhpi

ugds_2mor

ugds_nra

ugds_unkn

instnm

alabama a & m university

false

false

false

true

false

true

false

false

false

university of alabama at birmingham

false

false

false

false

false

false

false

false

false

amridge university

false

false

false

false

false

false

false

false

false

university of alabama in huntsville

false

false

false

false

false

false

false

false

false

alabama state university

false

false

false

true

false

false

false

false

false

用dataframe和dataframe進行比較

# 用dataframe和dataframe進行比較

college_self_compare = college_ugds_ == college_ugds_

college_self_compare.head()

ugds_white

ugds_black

ugds_hisp

ugds_asian

ugds_aian

ugds_nhpi

ugds_2mor

ugds_nra

ugds_unkn

instnm

alabama a & m university

true

true

true

true

true

true

true

true

true

university of alabama at birmingham

true

true

true

true

true

true

true

true

true

amridge university

true

true

true

true

true

true

true

true

true

university of alabama in huntsville

true

true

true

true

true

true

true

true

true

alabama state university

true

true

true

true

true

true

true

true

true

用all()檢查是否所有的值都是true;這是因為缺失值不互相等於

# 用all()檢查是否所有的值都是true;這是因為缺失值不互相等於。

college_self_compare.all()

ugds_white false

ugds_black false

ugds_hisp false

ugds_asian false

ugds_aian false

ugds_nhpi false

ugds_2mor false

ugds_nra false

ugds_unkn false

dtype: bool

可以用==號判斷,然後求和 

# 可以用==號判斷,然後求和

(college_ugds_ == np.nan).sum()

ugds_white 0

ugds_black 0

ugds_hisp 0

ugds_asian 0

ugds_aian 0

ugds_nhpi 0

ugds_2mor 0

ugds_nra 0

ugds_unkn 0

dtype: int64

統計缺失值最主要方法是使用isnull方法: 

# 統計缺失值最主要方法是使用isnull方法:

college_ugds_.isnull().sum()

ugds_white 661

ugds_black 661

ugds_hisp 661

ugds_asian 661

ugds_aian 661

ugds_nhpi 661

ugds_2mor 661

ugds_nra 661

ugds_unkn 661

dtype: int64

比較兩個dataframe最直接的方法是使用equals()方法

# 比較兩個dataframe最直接的方法是使用equals()方法

from pandas.testing import assert_frame_equal

assert_frame_equal(college_ugds_, college_ugds_)

# eq()方法類似於==,和前面的equals有所不同

college_ugds_.eq(.0019).head()

ugds_white

ugds_black

ugds_hisp

ugds_asian

ugds_aian

ugds_nhpi

ugds_2mor

ugds_nra

ugds_unkn

instnm

alabama a & m university

false

false

false

true

false

true

false

false

false

university of alabama at birmingham

false

false

false

false

false

false

false

false

false

amridge university

false

false

false

false

false

false

false

false

false

university of alabama in huntsville

false

false

false

false

false

false

false

false

false

alabama state university

false

false

false

true

false

false

false

false

false

pyspark中dataframe缺失值填充

在工作中我們經常面對各種缺失值的處理,當使用pandas,缺失值可以使用fillna,指定method ffill或bfill就能實現 缺失值的前向或後向填充。但是在spark應用中,需要稍微做一些改變。比如說我們先建立乙個dataframe df spark.createdataframe a 1...

資料探勘之缺失資料缺失的各種插補演算法比較

實驗要求 完成插補實驗 實驗工具 1 excel 2 記事本txt檔案 3.pycharm 4 jbpcafill.jar包 中含有none,null 的字元,表示資料缺失,在 統計資料個數時,字元none,null 影響統計的數量,所以這些字元需要刪除。在first包裡的prepare.py裡。思...

DataFrame分組和聚合

一 分組 1 語法 grouped df.groupby by columns name grouped是乙個dataframegroupby物件,是可迭代的 遍歷 grouped中的每乙個元素都是乙個元祖 元祖 索引 分組的值 分組之後的dataframe 2 取值 grouped.count 獲...