12.6周总结

1. 学习Python的DataFrame模块性质,以及如何运用DataFrame进行数据清洗

2. 600行

3. 8h

 

二 DataFrame的性质

2.1 索引、切片

# 数据集 
data = {
   'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
   'year':[2000,2001,2002,2001,2002],
   'pop':[1.5,1.7,3.6,2.4,2.9]
}
frame2 = pd.DataFrame(data,index=['one','two','three','four','five'],columns=['year','state','pop','debt'])

# 返回一列数据
frame2['year']

# 返回多列多行 (返回两行)
frame2[['two','three']]

#取行 (第一到第二条数据)
frame2[:2]

# 逻辑判断 ()
frame2[frame2['year']>2001]

 

2.2 返回行数,列数

返回列数:

df.shape[1]

返回行数:

df.shape[0]

 

2.3 排序


#按照任意一列或多列进行排序
frame.sort_values(by=['a','b'])
#输出
  d   a   b   c
three   0   1   2   3
one 4   5   6   7

 

 

三 数据清洗

3.1 去重

data.duplicated()                       #标记出哪些是重复的(true)
data.drop_duplicates()                   #直接将重复删除,默认保留第一条

 

3.2 处理缺失数据

  • isnull方法用于判断数据是否为空数据;

  • fillna方法用于填补缺失数据;

  • dropna方法用于舍弃缺失数据。

data.dropna()                             # 默认为整行删除
data.dropna(how='all',axis=1,inplace=True) # how=all,是当整行全是na的时候才进行删除

data.fillna({1:2,2:3}) #第二列全部替换为2, 第三列全部替换为3

 

 

3.3 异常值检测

(1) 通过逻辑判断来检测数据情况

frame2[frame2['year']>2001]

(2) 把异常的数据替换成0

# 将age的6、158替换成缺失
data_noDup['Age'].replace([158, 6], np.nan)

# 将package的-9替换成0
data_noDup['Package'].replace(-9, 0)

 

 

posted @ 2020-12-06 18:03  西西里啊  阅读(37)  评论(0编辑  收藏  举报