大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
实际应用中,在得到原始数据时,经常碰到数据缺失问题,对数据进行加工或清洗就非常有必要了
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 True
print(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 18
print(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 17
data.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 False
print(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 18
print(data.dropna(axis=1)) ### axis=1,删除带有空值的列,只要有一个空值,就删除整列
3
a 6
b 10
c 14
d 18
data=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 NaN
print(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 NaN
print(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 18
print(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
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/192632.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...