pandas 删除空值
目的: 将该含有过多空值的行/列删除
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: axis中至少有thresh个非缺失值,否则删除。(对此参数存在疑问的,我会在另外的文章写到)
subset:在某些列的子集中选择出现了缺失值的列删除,不在子集中的含有缺失值得列或行不会删除(有axis决定是行还是列)
inplace:刷选过缺失值得新数据是存为副本还是直接在原数据上进行修改。默认是False,即创建新的对象进行修改,原对象不变,和深复制和浅复制有些类似。
举例:
import pandas as pd
import numpy as np
df = pd.DataFrame({"name": ['Alfred', 'Batman', 'Catwoman'],
"toy": [np.nan, 'Batmobile', 'Bullwhip'],
"born": [pd.NaT, pd.Timestamp("1940-04-25"),pd.NaT]})
df
df.dropna()
df.dropna(axis = 1)
指定所有值全为缺失值才删时,用how=“all”
df.dropna(axis = 0, how = 'all')
指定至少出现过两个缺失值才删除,用(thresh=2)
df.dropna(axis = 0, thresh = 2)
当想指定哪几列中的含有缺失值的行或列
df.dropna(subset = ['name','born'])