python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > pandas数据缺失

pandas数据缺失的两种处理办法

作者:右拐三次就是左

本文主要介绍了在pandas中处理数据缺失和0值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

数据缺失通常有两种情况:

1.为NaN数据的处理

1.判断这列有没有NaN

has_nan = df['age'].isnull().any()
print(has_nan)

或者直接在控制台根据数据进行判断

在这里插入图片描述

2.处理方式

在这里插入图片描述

假设我 操作的是original_publication_year这一列,如何操作才能得到过滤后的显示样式

在这里插入图片描述

处理方式1:只考虑单列

df2 = df[pd.notnull(df["original_publication_year"]) 

这行代码的目的是 去除 original_publication_year 列中含有 NaN 值的行,并生成一个新的 DataFrame(df2),包含了所有 original_publication_year 列中不含 NaN 值的行。

3. df["original_publication_year"] 是获取 df 数据框中的 original_publication_year 这一列。

4. pd.notnull(df["original_publication_year")用于检查数据中的每个元素是否不是 NaN。返回一个布尔值的 Series.
True 的行会被保留;
False 的行会被排除(Book2何Book4被去除)。

5. 返回一个所有 original_publication_year 列中不是NaN 的行新的DataFrame

处理方式2:删除NaN所在的行

dropna(axis=0,how='any',inplace=False)

any表示有就删,all表示全部是NaN才删
inplace表示是否进行原地修改

处理方式3:填充数据

mean_value = df["original_publication_year"].mean()  # 计算均值
df_filled=df["original_publication_year"].fillna(mean_value)

在这里插入图片描述

t.fillna(t.mean()) #填充均值
t["列名"]=t["列名"].fillna(t["列名"].mean())
#单独对某一列进行操作
t.fiallna(t.median()) #填充中值
t.fillna(0)

2:为0数据的处理

t[t==0]=np.nan # 赋值为NaN
# 当然并不是每次为0的数据都需要处理
# 计算平均值等情况,nan是不参与计算的,但是0会的

设置成NaN后用处理NaN的方法处理。

到此这篇关于pandas数据缺失的处理办法解决的文章就介绍到这了,更多相关pandas数据缺失内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文