标签:lan str alt pytho arc 综合 imp scons any
获取缺失值的标记方式(NaN或其他标记方式)
如果缺失值的标记方式是NaN
判断数据是否包含NaN:
存在缺失值NaN:
删除存在的缺失值:
dropna(axis=‘rows‘)
注:不会修改原数据,而是返回删除后的数据
替换缺失值:
fillna(value, inplace=True)
如果缺失值没有使用NaN标记,比如使用 “ ? ”
读取电影文件获取数据
movie = pd.read_csv("./data/IMDB-Movie-Data.csv")
pd.notnull(movie)
# df直接调用notnull也可
movie.notnull()
可以用np.all或np.any来综合判断数据中是否有缺失值
np.all(pd.notnull(movie)) # 如果全为True,则返回True,说明没有缺失值
# 或
np.all(movie.notnull()) # 如果全为True,则返回True,说明没有缺失值
np.any(pd.isnull(movie)) # 如果存在True,则返回True,说明有缺失值
# 或
np.any(movie.isnull()) # 如果存在True,则返回True,说明有缺失值
删除
pandas删除缺失值,使用dropna的前提是缺失值的类型必须是np.nan
# 不改变原数据,所以用新变量接收
droped_movie = movie.dropna()
替换
替换所有缺失值
for col in movie.columns:
if np.any(movie[col].isnull()): # 如果存在缺失值
movie[col].fillna(movie[col].mean(), inplace=True) # 用该列的平均值填充
以缺失值为 "?" 为例:
wis = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data")
如果报URLError提示SSL证书错误:
# 全局取消证书验证
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
处理思路:
先替换"?"为np.nan
df.replace(to_replace=, value=)
# 把其他标记的缺失值,替换成np.nan
wis.replace(to_replace="?", value=np.nan)
再进行缺失值的处理
# 删除
wis = wis.dropna()
isnull、notnull判断是否存在缺失值【知道】
np.all(movie.notnull()) # 如果全为True,则返回True,说明没有缺失值
np.all(movie.notnull()) # 如果全为True,则返回True,说明没有缺失值
np.any(movie.isnull()) # 如果存在True,则返回True,说明有缺失值
np.any(movie.isnull()) # 如果存在True,则返回True,说明有缺失值
dropna删除np.nan标记的缺失值【知道】
movie.dropna()
fillna填充缺失值【知道】
movie[col].fillna(movie[col].mean(), inplace=True) # 用该列的平均值填充
replace替换某些具体值【知道】
wis.replace(to_replace="?", value=np.nan)
标签:lan str alt pytho arc 综合 imp scons any
原文地址:https://www.cnblogs.com/fade-color/p/14725725.html