zl程序教程

您现在的位置是:首页 >  后端

当前栏目

数据分析-day03-pandas-dataFrame的确失值的处理

pandas数据分析 处理 dataframe day03
2023-09-27 14:22:12 时间

判断数据是否为NaN:pd.isnull(df),pd.notnull(df) 处理方式1:删除NaN所在的行列dropna (axis=0, how='any', inplace=False) 处理方式2:填充数据,t.fillna(t.mean()),t.fiallna(t.median()),t.fillna(0)

# -*- coding: utf-8 -*-

# @File    : pandas_dataframe_fixempty_demo.py
# @Date    :  2020-01-03 13:39
# @Author  : admin
import string
import pandas as pd;
import numpy as np;
d=pd.DataFrame(np.arange(0,25).reshape(5,5),index=list(string.ascii_uppercase[2:7]),columns=list(string.ascii_uppercase[-5:]))

print(d)
#将第一行的2列设置为nan
d.iloc[1,1]=np.nan;
d.iloc[3,3]=np.nan;
#处理0的数据
d.iloc[4,4]=0;

print(d);

print("====================================将0置为nan============")
d[d==0]=np.nan;
print(d)
#判断是否为null
print("====================================pandas中判断是否为nan============")
print(pd.isnull(d))
print(pd.notnull(d))
#判断某一列不为nan的,d的w列不为nan的数据,使用到了boolean索引
print(d[pd.notnull(d["W"])])

print("====================================缺失值处理方式============")
#any 满足一个即可,all 满足所有
#print("缺失值处理方式一:删除NaN所在的行列:\r\n",d.dropna(axis=0, how='any', inplace=False))
#print("缺失值处理方式一:删除NaN所在的行列:\r\n",d.dropna(axis=0, how='any', inplace=False))
#计算平均值等情况,nan是不参与计算的,但是0会
print("平均值:",d.mean())
#t.fillna(0) 填充数据
#print("缺失值处理方式二:填充数据:\r\n",d.fillna(d.mean()));
#按指定行和列,填充缺失值
d["Y"]=d["Y"].fillna(d["Y"].mean())
print("缺失值处理方式二:填充数据:\r\n",d);

print(d["Z"].mean())