使用pandas对数据操作,筛选数据时,根据任务要求有时不仅要某列中存在空值的行,并且要删除某列中指定值所在行。
默认参数: data.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
#删除含有缺失值的行 axis=0或axis='index' #删除含有缺失值的列 axis=1或axis='columns'
how='all'或how=‘any'。 how='all'时表示删除全是缺失值的行(列) how='any'时表示删除只要含有缺失值的行(列)
data.dropna(thresh=2)
#在source和target两列中查找缺失值 data.drop(subset = ["source","target"])
#删除缺失值后不在原data上修改 inplace = False #删除缺失值后在原data上修改 inplace = True
默认参数: data.drop( labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise', )
#参数axis为0表示在0轴(列)上搜索名为“姓名”的对象,然后删除对象“姓名”对应的行。 data.drop("姓名",axis = 0) #参数axis为0表示在1轴(行)上搜索名为“姓名”的对象,然后删除对象“姓名”对应的列。 data.drop("姓名",axis = 1)
#删除data中索引为0和1的行 data.drop(index = [0,1])
#删除data中列名为“source”和“target”的列 data.drop(columns=['source', 'target'])
任务需求:删掉“ZH_Term_len”列中值为0的全部行。
#统计“ZH_Term_len”一列中有多少个0 data["ZH_Term_len"].value_counts()
data[(data.ZH_Term_len == 0)].index.tolist()
data = data.drop(index = data[(data.ZH_Term_len == 0)].index.tolist())
data.info()
#会将标签重新从零开始顺序排序,使用参数设置drop=True删除旧的索引序列 data = data.reset_index(drop=True)
统计后发现,“ZH_Term_len”列中值为0的行已经全部被删除掉。