大家好,又见面了,我是你们的朋友全栈君。
实际应用中,在得到原始数据时,经常碰到数据缺失问题,对数据进行加工或清洗就非常有必要了
import numpy as np
from numpy import nan
import pandas as pd
data=pd.DataFrame(np.arange(3,19,1).reshape(4,4),index=list('abcd'))
print(data)
print(data.isnull()) ### 查看data是否有缺失值(空值),False无缺失值
pritn(data.notnull()) ### 查看data是否有缺失值(空值),True无缺失值输出结果: 0 1 2 3
a 3 4 5 6
b 7 8 9 10
c 11 12 13 14
d 15 16 17 18
0 1 2 3
a False False False False
b False False False False
c False False False False
d False False False False
0 1 2 3
a True True True True
b True True True True
c True True True True
d True True True Trueprint(data.drop('a')) ### 默认参数axis=0,根据索引(index)删除指定的行
print(data.drop(1,axis=1) ### axis=1,根据列名(columns)删除指定的列 0 1 2 3
b 7 8 9 10
c 11 12 13 14
d 15 16 17 18
0 2 3
a 3 5 6
b 7 9 10
c 11 13 14
d 15 17 18print(data.drop(index=list('ac'))) ### 删除索引为‘ac’这2行,或print(data.drop(index=['a','c']))
print(data.drop([1,3],axis=1)) ### 删除列名为‘13’这2列 0 1 2 3
b 7 8 9 10
d 15 16 17 18
0 2
a 3 5
b 7 9
c 11 13
d 15 17data.iloc[0:2,0:3]=nan ### 取data前2行和前3列为空值
print(data)
print(data.isnull()) ### True为有缺失值 0 1 2 3
a NaN NaN NaN 6
b NaN NaN NaN 10
c 11.0 12.0 13.0 14
d 15.0 16.0 17.0 18
0 1 2 3
a True True True False
b True True True False
c False False False False
d False False False Falseprint(data.dropna()) ### 默认axis=0,how='any',删除带有空值的行,只要有一个空值,就删除整行 0 1 2 3
c 11.0 12.0 13.0 14
d 15.0 16.0 17.0 18print(data.dropna(axis=1)) ### axis=1,删除带有空值的列,只要有一个空值,就删除整列 3
a 6
b 10
c 14
d 18data=pd.DataFrame(np.arange(3,19,1).reshape(4,4),index=list('abcd'))
print(data)
data.iloc[0:1,:]=nan
data[3]=nan
print(data) 0 1 2 3
a NaN NaN NaN NaN
b 7.0 8.0 9.0 NaN
c 11.0 12.0 13.0 NaN
d 15.0 16.0 17.0 NaNprint(data.dropna(how='all')) ### 整行都是空值时,才会被删除 0 1 2 3
b 7.0 8.0 9.0 NaN
c 11.0 12.0 13.0 NaN
d 15.0 16.0 17.0 NaNprint(data.dropna(how='all',axis=1)) ### 整列都是空值时,才会被删除 0 1 2
a NaN NaN NaN
b 7.0 8.0 9.0
c 11.0 12.0 13.0
d 15.0 16.0 17.0### thresh,设定阈值,缺失值个数大于该阈值,整行(axis=0)或整列(axis=1)才会被删除
print(data.dropna(thresh=2)) ### thresh=2,缺失值个数大于2,该行才会被删 0 1 2 3
c 11.0 12.0 13.0 14
d 15.0 16.0 17.0 18print(data.dropna(subset=[1,2])) ### 删除指定列中包含缺失值的行
0 1 2 3
c 11.0 12.0 13.0 14
d 15.0 16.0 17.0 18版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192632.html原文链接:https://javaforall.cn