pandas小结(四)删除列的方法

pandas删除列有如下三种操作方式:

1.del df['columns'] #改变原始数据
2.df.drop('columns',axis=1)#删除不改表原始数据,可以通过重新赋值的方式赋值该数据
3.df.drop('columns',axis=1,inplace='True') #改变原始数据

具体总结为:凡是会对原数组作出修改并返回一个新数组的,往往都有一个 inplace可选参数。如果手动设定为True(默认为False),那么原数组直接就被替换。也就是说,采用inplace=True之后,原数组名(如2和3情况所示)对应的内存值直接改变;而采用inplace=False之后,原数组名对应的内存值并不改变,需要将新的结果赋给一个新的数组或者覆盖原数组的内存位置(如1情况所示)。

一、del df操作

引入pandas和numpy模块,生成测试数据如下:

pandas-del-columns

使用del 删除的时候,只需要在pandas数据里指定要删除数据的列名称即可。

>>> del df['E']
>>> df
             A   B   C   D
2019-07-11   0   1   2   3
2019-07-12   5   6   7   8
2019-07-13  10  11  12  13
2019-07-14  15  16  17  18
2019-07-15  20  21  22  23
2019-07-16  25  26  27  28

二、使用drop

1. df= df.drop('column_name', 1)

输入:df.drop('D',axis=1),不改变内存,及输入df的时候,它还是显示原数据:

>>> df.drop('D',axis=1)
             A   B   C
2019-07-11   0   1   2
2019-07-12   5   6   7
2019-07-13  10  11  12
2019-07-14  15  16  17
2019-07-15  20  21  22
2019-07-16  25  26  27
>>> df
             A   B   C   D
2019-07-11   0   1   2   3
2019-07-12   5   6   7   8
2019-07-13  10  11  12  13
2019-07-14  15  16  17  18
2019-07-15  20  21  22  23
2019-07-16  25  26  27  28

axis取值有0和1,0代表删除行,1代表删除列。删除多列用法如下:

>>> df.drop(['B', 'C'], axis=1)  或
>>> df.drop(columns=['B', 'C'])

2. df.drop('column_name',axis=1, inplace=True)

输入:df.drop('num',axis=1,inplace=True),改变内存,及输入df的时候,它显示改变后的数据:

>>> df.drop('B',axis=1,inplace=True)
>>> df
             A   C   D
2019-07-11   0   2   3
2019-07-12   5   7   8
2019-07-13  10  12  13
2019-07-14  15  17  18
2019-07-15  20  22  23
2019-07-16  25  27  28

3. df.drop(df.columns[[0,1, 3]], axis=1,inplace=True)  

使用列索引信息删除,示例如下:

>>> df
             A   C   D
2019-07-11   0   2   3
2019-07-12   5   7   8
2019-07-13  10  12  13
2019-07-14  15  17  18
2019-07-15  20  22  23
2019-07-16  25  27  28
>>> df.drop(df.columns[0], axis=1,inplace=True)
>>> df
             C   D
2019-07-11   2   3
2019-07-12   7   8
2019-07-13  12  13
2019-07-14  17  18
2019-07-15  22  23
2019-07-16  27  28
>>> df.drop(df.columns[[0,1]], axis=1,inplace=True)
>>> df
Empty DataFrame
Columns: []
Index: [2019-07-11 00:00:00, 2019-07-12 00:00:00, 2019-07-13 00:00:00, 2019-07-14 00:00:00, 2019-07-15 00:00:00, 2019-07-16 00:00:00]
>>> 

最后给下行删除的方法,也是类似的,如下:

>>> df
   A  B   C   D
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
>>> df.drop([0, 1])
   A  B   C   D
2  8  9  10  11

PS: 2019-07-22 后记,为便于将pandas进行系列整理,方便查询,特将此篇时间与2017年写的一些东西进行了标题和时间合并,做成系列文章。




本站的发展离不开您的资助,金额随意,欢迎来赏!

You can donate through PayPal.
My paypal id: itybku@139.com
Paypal page: https://www.paypal.me/361way

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.