使用DataFrame删除行和列的实例讲解

作者:Clarmy 时间:2021-03-05 21:06:04 

本文通过一个csv实例文件来展示如何删除Pandas.DataFrame的行和列

数据文件名为:example.csv

内容为:

datespringsummerautumnwinter
200012.233880916.9073011315.6923831314.08596223
200112.8474805716.7504687314.5140663713.5037456
200213.55817517.203392615.699947513.23365247
200312.654724716.8949153315.661464712.84347867
200413.253729817.0469665715.2090537714.3647912
200513.444304916.745982216.6221879711.61082257
200613.5056956716.8335785715.497928212.19934363
200713.4885262316.6677328315.8170143713.7438216
200813.151531916.4865069315.7295728712.93233587
200913.4577154316.6392378318.2601799712.65315943
201013.194548516.728688915.4263526713.8833583
201114.3477941716.6894210314.1765804312.36654197
201213.605086717.1305677314.7179677713.29255243
201313.0279078717.3861934316.2034549713.18612133
201412.7466816316.5442868714.736768212.87065125
201513.46590416.5061231712.4424366311.0181384
seasonspringsummerautumnwinter
slope0.0379691374-0.01164689167-0.07913844113-0.07765274553

删除行


In [1]:
import numpy as np
import pandas as pd
odata = pd.read_csv('example.csv')
odata
Out[1]:
date  spring  summer  autumn  winter
0  2000  12.2338809  16.9073011333  15.6923831333  14.0859622333
1  2001  12.8474805667  16.7504687333  14.5140663667  13.5037456
2  2002  13.558175  17.2033926  15.6999475  13.2336524667
3  2003  12.6547247  16.8949153333  15.6614647  12.8434786667
4  2004  13.2537298  17.0469665667  15.2090537667  14.3647912
5  2005  13.4443049  16.7459822  16.6221879667  11.6108225667
6  2006  13.5056956667  16.8335785667  15.4979282  12.1993436333
7  2007  13.4885262333  16.6677328333  15.8170143667  13.7438216
8  2008  13.1515319  16.4865069333  15.7295728667  12.9323358667
9  2009  13.4577154333  16.6392378333  18.2601799667  12.6531594333
10  2010  13.1945485  16.7286889  15.4263526667  13.8833583
11  2011  14.3477941667  16.6894210333  14.1765804333  12.3665419667
12  2012  13.6050867  17.1305677333  14.7179677667  13.2925524333
13  2013  13.0279078667  17.3861934333  16.2034549667  13.1861213333
14  2014  12.7466816333  16.5442868667  14.7367682  12.8706512467
15  2015  13.465904  16.5061231667  12.4424366333  11.0181384
16  season  spring  summer  autumn  winter
17  slope  0.037969137402  -0.0116468916667  -0.0791384411275  -0.0776527455294

.drop()方法如果不设置参数inplace=True,则只能在生成的新数据块中实现删除效果,而不能删除原有数据块的相应行。


In [2]:
data = odata.drop([16,17])
odata
Out[2]:
date  spring  summer  autumn  winter
0  2000  12.2338809  16.9073011333  15.6923831333  14.0859622333
1  2001  12.8474805667  16.7504687333  14.5140663667  13.5037456
2  2002  13.558175  17.2033926  15.6999475  13.2336524667
3  2003  12.6547247  16.8949153333  15.6614647  12.8434786667
4  2004  13.2537298  17.0469665667  15.2090537667  14.3647912
5  2005  13.4443049  16.7459822  16.6221879667  11.6108225667
6  2006  13.5056956667  16.8335785667  15.4979282  12.1993436333
7  2007  13.4885262333  16.6677328333  15.8170143667  13.7438216
8  2008  13.1515319  16.4865069333  15.7295728667  12.9323358667
9  2009  13.4577154333  16.6392378333  18.2601799667  12.6531594333
10  2010  13.1945485  16.7286889  15.4263526667  13.8833583
11  2011  14.3477941667  16.6894210333  14.1765804333  12.3665419667
12  2012  13.6050867  17.1305677333  14.7179677667  13.2925524333
13  2013  13.0279078667  17.3861934333  16.2034549667  13.1861213333
14  2014  12.7466816333  16.5442868667  14.7367682  12.8706512467
15  2015  13.465904  16.5061231667  12.4424366333  11.0181384
16  season  spring  summer  autumn  winter
17  slope  0.037969137402  -0.0116468916667  -0.0791384411275  -0.0776527455294
In [3]:
data
Out[3]:
date  spring  summer  autumn  winter
0  2000  12.2338809  16.9073011333  15.6923831333  14.0859622333
1  2001  12.8474805667  16.7504687333  14.5140663667  13.5037456
2  2002  13.558175  17.2033926  15.6999475  13.2336524667
3  2003  12.6547247  16.8949153333  15.6614647  12.8434786667
4  2004  13.2537298  17.0469665667  15.2090537667  14.3647912
5  2005  13.4443049  16.7459822  16.6221879667  11.6108225667
6  2006  13.5056956667  16.8335785667  15.4979282  12.1993436333
7  2007  13.4885262333  16.6677328333  15.8170143667  13.7438216
8  2008  13.1515319  16.4865069333  15.7295728667  12.9323358667
9  2009  13.4577154333  16.6392378333  18.2601799667  12.6531594333
10  2010  13.1945485  16.7286889  15.4263526667  13.8833583
11  2011  14.3477941667  16.6894210333  14.1765804333  12.3665419667
12  2012  13.6050867  17.1305677333  14.7179677667  13.2925524333
13  2013  13.0279078667  17.3861934333  16.2034549667  13.1861213333
14  2014  12.7466816333  16.5442868667  14.7367682  12.8706512467
15  2015  13.465904  16.5061231667  12.4424366333  11.0181384

如果inplace=True则原有数据块的相应行被删除


In [4]:
odata.drop(odata.index[[16,17]],inplace=True)
odata
Out[4]:
date  spring  summer  autumn  winter
0  2000  12.2338809  16.9073011333  15.6923831333  14.0859622333
1  2001  12.8474805667  16.7504687333  14.5140663667  13.5037456
2  2002  13.558175  17.2033926  15.6999475  13.2336524667
3  2003  12.6547247  16.8949153333  15.6614647  12.8434786667
4  2004  13.2537298  17.0469665667  15.2090537667  14.3647912
5  2005  13.4443049  16.7459822  16.6221879667  11.6108225667
6  2006  13.5056956667  16.8335785667  15.4979282  12.1993436333
7  2007  13.4885262333  16.6677328333  15.8170143667  13.7438216
8  2008  13.1515319  16.4865069333  15.7295728667  12.9323358667
9  2009  13.4577154333  16.6392378333  18.2601799667  12.6531594333
10  2010  13.1945485  16.7286889  15.4263526667  13.8833583
11  2011  14.3477941667  16.6894210333  14.1765804333  12.3665419667
12  2012  13.6050867  17.1305677333  14.7179677667  13.2925524333
13  2013  13.0279078667  17.3861934333  16.2034549667  13.1861213333
14  2014  12.7466816333  16.5442868667  14.7367682  12.8706512467
15  2015  13.465904  16.5061231667  12.4424366333  11.0181384

删除列

del方法


In [5]:
del odata['date']
odata
Out[5]:
spring  summer  autumn  winter
0  12.2338809  16.9073011333  15.6923831333  14.0859622333
1  12.8474805667  16.7504687333  14.5140663667  13.5037456
2  13.558175  17.2033926  15.6999475  13.2336524667
3  12.6547247  16.8949153333  15.6614647  12.8434786667
4  13.2537298  17.0469665667  15.2090537667  14.3647912
5  13.4443049  16.7459822  16.6221879667  11.6108225667
6  13.5056956667  16.8335785667  15.4979282  12.1993436333
7  13.4885262333  16.6677328333  15.8170143667  13.7438216
8  13.1515319  16.4865069333  15.7295728667  12.9323358667
9  13.4577154333  16.6392378333  18.2601799667  12.6531594333
10  13.1945485  16.7286889  15.4263526667  13.8833583
11  14.3477941667  16.6894210333  14.1765804333  12.3665419667
12  13.6050867  17.1305677333  14.7179677667  13.2925524333
13  13.0279078667  17.3861934333  16.2034549667  13.1861213333
14  12.7466816333  16.5442868667  14.7367682  12.8706512467
15  13.465904  16.5061231667  12.4424366333  11.0181384

.pop()方法

.pop方法可以将所选列从原数据块中弹出,原数据块不再保留该列


In [6]:
spring = odata.pop('spring')
spring
Out[6]:
0    12.2338809
1   12.8474805667
2     13.558175
3    12.6547247
4    13.2537298
5    13.4443049
6   13.5056956667
7   13.4885262333
8    13.1515319
9   13.4577154333
10    13.1945485
11  14.3477941667
12    13.6050867
13  13.0279078667
14  12.7466816333
15    13.465904
Name: spring, dtype: object
In [7]:
odata
Out[7]:
summer  autumn  winter
0  16.9073011333  15.6923831333  14.0859622333
1  16.7504687333  14.5140663667  13.5037456
2  17.2033926  15.6999475  13.2336524667
3  16.8949153333  15.6614647  12.8434786667
4  17.0469665667  15.2090537667  14.3647912
5  16.7459822  16.6221879667  11.6108225667
6  16.8335785667  15.4979282  12.1993436333
7  16.6677328333  15.8170143667  13.7438216
8  16.4865069333  15.7295728667  12.9323358667
9  16.6392378333  18.2601799667  12.6531594333
10  16.7286889  15.4263526667  13.8833583
11  16.6894210333  14.1765804333  12.3665419667
12  17.1305677333  14.7179677667  13.2925524333
13  17.3861934333  16.2034549667  13.1861213333
14  16.5442868667  14.7367682  12.8706512467
15  16.5061231667  12.4424366333  11.0181384

.drop()方法

drop方法既可以保留原数据块中的所选列,也可以删除,这取决于参数inplace


In [8]:
withoutSummer = odata.drop(['summer'],axis=1)
withoutSummer
Out[8]:
autumn  winter
0  15.6923831333  14.0859622333
1  14.5140663667  13.5037456
2  15.6999475  13.2336524667
3  15.6614647  12.8434786667
4  15.2090537667  14.3647912
5  16.6221879667  11.6108225667
6  15.4979282  12.1993436333
7  15.8170143667  13.7438216
8  15.7295728667  12.9323358667
9  18.2601799667  12.6531594333
10  15.4263526667  13.8833583
11  14.1765804333  12.3665419667
12  14.7179677667  13.2925524333
13  16.2034549667  13.1861213333
14  14.7367682  12.8706512467
15  12.4424366333  11.0181384
In [9]:
odata
Out[9]:
summer  autumn  winter
0  16.9073011333  15.6923831333  14.0859622333
1  16.7504687333  14.5140663667  13.5037456
2  17.2033926  15.6999475  13.2336524667
3  16.8949153333  15.6614647  12.8434786667
4  17.0469665667  15.2090537667  14.3647912
5  16.7459822  16.6221879667  11.6108225667
6  16.8335785667  15.4979282  12.1993436333
7  16.6677328333  15.8170143667  13.7438216
8  16.4865069333  15.7295728667  12.9323358667
9  16.6392378333  18.2601799667  12.6531594333
10  16.7286889  15.4263526667  13.8833583
11  16.6894210333  14.1765804333  12.3665419667
12  17.1305677333  14.7179677667  13.2925524333
13  17.3861934333  16.2034549667  13.1861213333
14  16.5442868667  14.7367682  12.8706512467
15  16.5061231667  12.4424366333  11.0181384

当inplace=True时.drop()执行内部删除,不返回任何值,原数据发生改变


In [10]:
withoutWinter = odata.drop(['winter'],axis=1,inplace=True)
type(withoutWinter)
Out[10]:
NoneType
In [11]:
odata
Out[11]:
summer  autumne
0  16.9073011333  15.6923831333
1  16.7504687333  14.5140663667
2  17.2033926  15.6999475
3  16.8949153333  15.6614647
4  17.0469665667  15.2090537667
5  16.7459822  16.6221879667
6  16.8335785667  15.4979282
7  16.6677328333  15.8170143667
8  16.4865069333  15.7295728667
9  16.6392378333  18.2601799667
10  16.7286889  15.4263526667
11  16.6894210333  14.1765804333
12  17.1305677333  14.7179677667
13  17.3861934333  16.2034549667
14  16.5442868667  14.7367682
15  16.5061231667  12.4424366333

总结,不论是行删除还是列删除,也不论是原数据删除,还是输出新变量删除,.drop()的方法都能达到目的,为了方便好记,熟练操作,所以应该尽量多使用.drop()方法

来源:https://www.jianshu.com/p/67e67c7034f6

标签:DataFrame,删除,行,列
0
投稿

猜你喜欢

  • Numpy 理解ndarray对象的示例代码

    2023-07-17 00:56:20
  • 通过gradio和摄像头获取照片和视频实现过程

    2023-07-08 18:02:30
  • Python基于SMTP协议实现发送邮件功能详解

    2022-07-17 00:31:00
  • python3代码中实现加法重载的实例

    2023-07-13 12:01:31
  • MacOS安装python报错"zsh: command not found:python"的解决方法

    2022-02-07 10:50:18
  • javascript 时间脚本收集

    2013-07-17 19:52:50
  • python删除列表元素del,pop(),remove()及clear()

    2023-10-07 14:51:35
  • 在pycharm中无法import所安装的库解决方案

    2021-10-20 02:50:11
  • python中异常捕获方法详解

    2021-10-30 10:06:09
  • Python编程通过懒属性提升性能

    2022-04-01 09:48:43
  • 深入理解ASP中FSO的神奇功能

    2007-09-18 12:22:00
  • python如何提升爬虫效率

    2021-12-17 22:18:24
  • 网站改版常见问题答疑

    2008-08-22 18:31:00
  • python模拟预测一下新型冠状病毒肺炎的数据

    2023-12-17 05:09:15
  • python用socket实现协议TCP长连接框架

    2022-05-08 00:22:47
  • 一劳永逸彻底解决pip install慢的办法

    2023-08-10 20:30:52
  • pandas将list数据拆分成行或列的实现

    2023-12-23 01:58:41
  • python实现的web监控系统

    2022-01-28 20:31:57
  • 在ASP处理程序时,进度显示

    2008-08-04 13:27:00
  • python肯德尔系数相关性数据分析示例

    2023-02-20 21:42:35
  • asp之家 网络编程 m.aspxhome.com