不知为何,最近看了一下dataframe删除行列的一些方法,这里简单做个汇总和分析对比,内容太简单不做数据演示了;
方法一,df.drop()
这个方法适用于删除 一个或者多个行 or 一个或者多个列;
Parameters:
labels:待删除的行名or列名,单个就只传一个,多个必须传列表;
axis: {0 or 'index', 1 or 'columns'}, default 0,指定删行还是删列;
index: single label or list-like,如果用index就相当于删行,且指定了axis=0,此时不需要显示指定axis,当然你写一个也无所谓;
columns:指定删的列or列list,等于axis=1;
level:多重索引用于指定层级;
inplace:bool, default False,是否修改源数据;
errors : {'ignore', 'raise'}, default 'raise'
这个方法比较万能,且适用性广,而且很简单
方法二,一些小招
del df['一个列名']
pop df['一个列名']
上面这两个小招,都只能删列,且只能一次删一个列,且直接修改源数据,pop多一个可以用参数接收丢出来的列,丢出来的变成了Series;
有人说del可以删行,经过测试,不管是loc,iloc,index什么都会报错,可能跟pandas版本有关系,当然肯定不建议用这两个方法删行
方法三,筛选==删除
这个方法已经不仅仅是删行、列这么简单,可以直接选出符合条件的数据;
直接对原df进行筛选,可以用新变量接收,可以直接原变量覆盖;
此时不管用df[跟条件],df.query,df.loc[],df.iloc[]都行,相信大部分情况下我们都是想根据条件筛选出新的df,这也是最常用的,这招用久了都忘记有drop这个方法的存在了;