Python pandas 缺失/空值判断与处理
1.相关概念空值:在pandas中的空值是""缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan即可2.判断文件中是否含有缺失/空值#首先读入文件df = pd.read_csv("nba.csv")# 查看每一列是否有NaN:df.isnull().any(axis=0)# 查看每一行是否有NaN:df.isnull().any(axis=1)#
1.相关概念
空值:在pandas中的空值是""
缺失值:在dataframe中为nan或者naT(缺失时间),在series中为none或者nan即可
2.判断文件中是否含有缺失/空值
#首先读入文件
df = pd.read_csv("nba.csv")
# 查看每一列是否有NaN:
df.isnull().any(axis=0)
# 查看每一行是否有NaN:
df.isnull().any(axis=1)
# 查看所有数据中是否有NaN最快的,没有输出False,反之为True:
df.isnull().values.any()
# 查看每一列是否有缺失:
df.isna().any(axis=0)
# 查看每一行是否有缺失:
df.isna().any(axis=1)
# 查看所有数据中是否有缺少最快的,没有输出False,反之为True:
df.isna().values.any()
3.输出含有缺失/空值的数据行
data[data.isnull().values==True]
data[data.isna().values==True]
4.删除含有空值的行或列
DataFrame.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
axis:维度,axis=0表示index行,axis=1表示columns列,默认为0
how:"all"表示这一行或列中的元素全部缺失(为nan)才删除这一行或列,"any"表示这一行或列中只要有元素缺失,就删除这一行或列
thresh:一行或一列中至少出现了thresh个才删除。
subset:在某些列的子集中选择出现了缺失值的列删除,不在子集中的含有缺失值得列或行不会删除(有axis决定是行还是列)
inplace:刷选过缺失值得新数据是存为副本还是直接在原数据上进行修改。
#删除空行
data.dropna()
#删除缺失行
dp.dropnull()
5.填充含有空值的行或列
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, kwargs)
value:需要用什么值去填充缺失值
axis:确定填充维度,从行开始或是从列开始
method:ffill:用缺失值前面的一个值代替缺失值,如果axis =1,那么就是横向的前面的值替换后面的缺失值,如果axis=0,那么则是上面的值替换下面的缺失值。backfill/bfill,缺失值后面的一个值代替前面的缺失值。注意这个参数不能与value同时出现
limit:确定填充的个数,如果limit=2,则只填充两个缺失值。
#"横向用缺失值前面的值替换缺失值"
df.fillna(axis=1,method='ffill')
#"纵向用缺失值上面的值替换缺失值"
df.fillna(axis=1,method='ffill')
#用0替换
df.fillna(0)
更多推荐
所有评论(0)