DataFrame删除行和列

来源:互联网 发布:开淘宝网店花钱吗 编辑:程序博客网 时间:2024/05/20 23:31

本文通过一个csv实例文件来展示如何删除Pandas.DataFrame的行和列
数据文件名为:example.csv
内容为:

datespringsummerautumnwinter200012.233880916.9073011315.6923831314.08596223200112.8474805716.7504687314.5140663713.5037456200213.55817517.203392615.699947513.23365247200312.654724716.8949153315.661464712.84347867200413.253729817.0469665715.2090537714.3647912200513.444304916.745982216.6221879711.61082257200613.5056956716.8335785715.497928212.19934363200713.4885262316.6677328315.8170143713.7438216200813.151531916.4865069315.7295728712.93233587200913.4577154316.6392378318.2601799712.65315943201013.194548516.728688915.4263526713.8833583201114.3477941716.6894210314.1765804312.36654197201213.605086717.1305677314.7179677713.29255243201313.0279078717.3861934316.2034549713.18612133201412.7466816316.5442868714.736768212.87065125201513.46590416.5061231712.4424366311.0181384seasonspringsummerautumnwinterslope0.0379691374-0.01164689167-0.07913844113-0.07765274553

删除行

In [1]:import numpy as npimport pandas as pdodata = pd.read_csv('example.csv')odataOut[1]:date    spring    summer    autumn    winter0    2000    12.2338809    16.9073011333    15.6923831333    14.08596223331    2001    12.8474805667    16.7504687333    14.5140663667    13.50374562    2002    13.558175    17.2033926    15.6999475    13.23365246673    2003    12.6547247    16.8949153333    15.6614647    12.84347866674    2004    13.2537298    17.0469665667    15.2090537667    14.36479125    2005    13.4443049    16.7459822    16.6221879667    11.61082256676    2006    13.5056956667    16.8335785667    15.4979282    12.19934363337    2007    13.4885262333    16.6677328333    15.8170143667    13.74382168    2008    13.1515319    16.4865069333    15.7295728667    12.93233586679    2009    13.4577154333    16.6392378333    18.2601799667    12.653159433310    2010    13.1945485    16.7286889    15.4263526667    13.883358311    2011    14.3477941667    16.6894210333    14.1765804333    12.366541966712    2012    13.6050867    17.1305677333    14.7179677667    13.292552433313    2013    13.0279078667    17.3861934333    16.2034549667    13.186121333314    2014    12.7466816333    16.5442868667    14.7367682    12.870651246715    2015    13.465904    16.5061231667    12.4424366333    11.018138416    season    spring    summer    autumn    winter17    slope    0.037969137402    -0.0116468916667    -0.0791384411275    -0.0776527455294

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

In [2]:data = odata.drop([16,17])odataOut[2]:date    spring    summer    autumn    winter0    2000    12.2338809    16.9073011333    15.6923831333    14.08596223331    2001    12.8474805667    16.7504687333    14.5140663667    13.50374562    2002    13.558175    17.2033926    15.6999475    13.23365246673    2003    12.6547247    16.8949153333    15.6614647    12.84347866674    2004    13.2537298    17.0469665667    15.2090537667    14.36479125    2005    13.4443049    16.7459822    16.6221879667    11.61082256676    2006    13.5056956667    16.8335785667    15.4979282    12.19934363337    2007    13.4885262333    16.6677328333    15.8170143667    13.74382168    2008    13.1515319    16.4865069333    15.7295728667    12.93233586679    2009    13.4577154333    16.6392378333    18.2601799667    12.653159433310    2010    13.1945485    16.7286889    15.4263526667    13.883358311    2011    14.3477941667    16.6894210333    14.1765804333    12.366541966712    2012    13.6050867    17.1305677333    14.7179677667    13.292552433313    2013    13.0279078667    17.3861934333    16.2034549667    13.186121333314    2014    12.7466816333    16.5442868667    14.7367682    12.870651246715    2015    13.465904    16.5061231667    12.4424366333    11.018138416    season    spring    summer    autumn    winter17    slope    0.037969137402    -0.0116468916667    -0.0791384411275    -0.0776527455294In [3]:dataOut[3]:date    spring    summer    autumn    winter0    2000    12.2338809    16.9073011333    15.6923831333    14.08596223331    2001    12.8474805667    16.7504687333    14.5140663667    13.50374562    2002    13.558175    17.2033926    15.6999475    13.23365246673    2003    12.6547247    16.8949153333    15.6614647    12.84347866674    2004    13.2537298    17.0469665667    15.2090537667    14.36479125    2005    13.4443049    16.7459822    16.6221879667    11.61082256676    2006    13.5056956667    16.8335785667    15.4979282    12.19934363337    2007    13.4885262333    16.6677328333    15.8170143667    13.74382168    2008    13.1515319    16.4865069333    15.7295728667    12.93233586679    2009    13.4577154333    16.6392378333    18.2601799667    12.653159433310    2010    13.1945485    16.7286889    15.4263526667    13.883358311    2011    14.3477941667    16.6894210333    14.1765804333    12.366541966712    2012    13.6050867    17.1305677333    14.7179677667    13.292552433313    2013    13.0279078667    17.3861934333    16.2034549667    13.186121333314    2014    12.7466816333    16.5442868667    14.7367682    12.870651246715    2015    13.465904    16.5061231667    12.4424366333    11.0181384

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

In [4]:odata.drop(odata.index[[16,17]],inplace=True)odataOut[4]:date    spring    summer    autumn    winter0    2000    12.2338809    16.9073011333    15.6923831333    14.08596223331    2001    12.8474805667    16.7504687333    14.5140663667    13.50374562    2002    13.558175    17.2033926    15.6999475    13.23365246673    2003    12.6547247    16.8949153333    15.6614647    12.84347866674    2004    13.2537298    17.0469665667    15.2090537667    14.36479125    2005    13.4443049    16.7459822    16.6221879667    11.61082256676    2006    13.5056956667    16.8335785667    15.4979282    12.19934363337    2007    13.4885262333    16.6677328333    15.8170143667    13.74382168    2008    13.1515319    16.4865069333    15.7295728667    12.93233586679    2009    13.4577154333    16.6392378333    18.2601799667    12.653159433310    2010    13.1945485    16.7286889    15.4263526667    13.883358311    2011    14.3477941667    16.6894210333    14.1765804333    12.366541966712    2012    13.6050867    17.1305677333    14.7179677667    13.292552433313    2013    13.0279078667    17.3861934333    16.2034549667    13.186121333314    2014    12.7466816333    16.5442868667    14.7367682    12.870651246715    2015    13.465904    16.5061231667    12.4424366333    11.0181384

删除列

del方法

In [5]:del odata['date']odataOut[5]:spring    summer    autumn    winter0    12.2338809    16.9073011333    15.6923831333    14.08596223331    12.8474805667    16.7504687333    14.5140663667    13.50374562    13.558175    17.2033926    15.6999475    13.23365246673    12.6547247    16.8949153333    15.6614647    12.84347866674    13.2537298    17.0469665667    15.2090537667    14.36479125    13.4443049    16.7459822    16.6221879667    11.61082256676    13.5056956667    16.8335785667    15.4979282    12.19934363337    13.4885262333    16.6677328333    15.8170143667    13.74382168    13.1515319    16.4865069333    15.7295728667    12.93233586679    13.4577154333    16.6392378333    18.2601799667    12.653159433310    13.1945485    16.7286889    15.4263526667    13.883358311    14.3477941667    16.6894210333    14.1765804333    12.366541966712    13.6050867    17.1305677333    14.7179677667    13.292552433313    13.0279078667    17.3861934333    16.2034549667    13.186121333314    12.7466816333    16.5442868667    14.7367682    12.870651246715    13.465904    16.5061231667    12.4424366333    11.0181384

.pop()方法

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

In [6]:spring = odata.pop('spring')springOut[6]:0        12.23388091     12.84748056672         13.5581753        12.65472474        13.25372985        13.44430496     13.50569566677     13.48852623338        13.15153199     13.457715433310       13.194548511    14.347794166712       13.605086713    13.027907866714    12.746681633315        13.465904Name: spring, dtype: objectIn [7]:odataOut[7]:summer    autumn    winter0    16.9073011333    15.6923831333    14.08596223331    16.7504687333    14.5140663667    13.50374562    17.2033926    15.6999475    13.23365246673    16.8949153333    15.6614647    12.84347866674    17.0469665667    15.2090537667    14.36479125    16.7459822    16.6221879667    11.61082256676    16.8335785667    15.4979282    12.19934363337    16.6677328333    15.8170143667    13.74382168    16.4865069333    15.7295728667    12.93233586679    16.6392378333    18.2601799667    12.653159433310    16.7286889    15.4263526667    13.883358311    16.6894210333    14.1765804333    12.366541966712    17.1305677333    14.7179677667    13.292552433313    17.3861934333    16.2034549667    13.186121333314    16.5442868667    14.7367682    12.870651246715    16.5061231667    12.4424366333    11.0181384

.drop()方法

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

In [8]:withoutSummer = odata.drop(['summer'],axis=1)withoutSummerOut[8]:autumn    winter0    15.6923831333    14.08596223331    14.5140663667    13.50374562    15.6999475    13.23365246673    15.6614647    12.84347866674    15.2090537667    14.36479125    16.6221879667    11.61082256676    15.4979282    12.19934363337    15.8170143667    13.74382168    15.7295728667    12.93233586679    18.2601799667    12.653159433310    15.4263526667    13.883358311    14.1765804333    12.366541966712    14.7179677667    13.292552433313    16.2034549667    13.186121333314    14.7367682    12.870651246715    12.4424366333    11.0181384In [9]:odataOut[9]:summer    autumn    winter0    16.9073011333    15.6923831333    14.08596223331    16.7504687333    14.5140663667    13.50374562    17.2033926    15.6999475    13.23365246673    16.8949153333    15.6614647    12.84347866674    17.0469665667    15.2090537667    14.36479125    16.7459822    16.6221879667    11.61082256676    16.8335785667    15.4979282    12.19934363337    16.6677328333    15.8170143667    13.74382168    16.4865069333    15.7295728667    12.93233586679    16.6392378333    18.2601799667    12.653159433310    16.7286889    15.4263526667    13.883358311    16.6894210333    14.1765804333    12.366541966712    17.1305677333    14.7179677667    13.292552433313    17.3861934333    16.2034549667    13.186121333314    16.5442868667    14.7367682    12.870651246715    16.5061231667    12.4424366333    11.0181384

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

In [10]:withoutWinter = odata.drop(['winter'],axis=1,inplace=True)type(withoutWinter)Out[10]:NoneTypeIn [11]:odataOut[11]:summer    autumne0    16.9073011333    15.69238313331    16.7504687333    14.51406636672    17.2033926    15.69994753    16.8949153333    15.66146474    17.0469665667    15.20905376675    16.7459822    16.62218796676    16.8335785667    15.49792827    16.6677328333    15.81701436678    16.4865069333    15.72957286679    16.6392378333    18.260179966710    16.7286889    15.426352666711    16.6894210333    14.176580433312    17.1305677333    14.717967766713    17.3861934333    16.203454966714    16.5442868667    14.736768215    16.5061231667    12.4424366333

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

    转自:<a>http://www.jianshu.com/p/67e67c7034f6</a>
原创粉丝点击