本文通过一个csv实例文件来展示如何删除Pandas.DataFrame的行和列
数据文件名为:example.csv
内容为:
date | spring | summer | autumn | winter |
---|---|---|---|---|
2000 | 12.2338809 | 16.90730113 | 15.69238313 | 14.08596223 |
2001 | 12.84748057 | 16.75046873 | 14.51406637 | 13.5037456 |
2002 | 13.558175 | 17.2033926 | 15.6999475 | 13.23365247 |
2003 | 12.6547247 | 16.89491533 | 15.6614647 | 12.84347867 |
2004 | 13.2537298 | 17.04696657 | 15.20905377 | 14.3647912 |
2005 | 13.4443049 | 16.7459822 | 16.62218797 | 11.61082257 |
2006 | 13.50569567 | 16.83357857 | 15.4979282 | 12.19934363 |
2007 | 13.48852623 | 16.66773283 | 15.81701437 | 13.7438216 |
2008 | 13.1515319 | 16.48650693 | 15.72957287 | 12.93233587 |
2009 | 13.45771543 | 16.63923783 | 18.26017997 | 12.65315943 |
2010 | 13.1945485 | 16.7286889 | 15.42635267 | 13.8833583 |
2011 | 14.34779417 | 16.68942103 | 14.17658043 | 12.36654197 |
2012 | 13.6050867 | 17.13056773 | 14.71796777 | 13.29255243 |
2013 | 13.02790787 | 17.38619343 | 16.20345497 | 13.18612133 |
2014 | 12.74668163 | 16.54428687 | 14.7367682 | 12.87065125 |
2015 | 13.465904 | 16.50612317 | 12.44243663 | 11.0181384 |
season | spring | summer | autumn | winter |
slope | 0.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()方法
本文向大家介绍pandas DataFrame行或列的删除方法的实现示例,包括了pandas DataFrame行或列的删除方法的实现示例的使用技巧和注意事项,需要的朋友参考一下 此文我们继续围绕DataFrame介绍相关操作。 平时在用DataFrame时候,删除操作用的不太多,基本是从源DataFrame中筛选数据,组成一个新的DataFrame再继续操作。 1. 删除DataFrame某一列
本文向大家介绍python中Array和DataFrame相互转换的实例讲解,包括了python中Array和DataFrame相互转换的实例讲解的使用技巧和注意事项,需要的朋友参考一下 python中,对于array数组中的数据放在DataFrame数据框中可以更好的进行数据分析,但是二者并不是一个数据类型,因此需要将array转dataframe。既然可以array转dataframe,那么可
问题内容: 我有以下DataFrame: 我需要删除等于的行0。最有效的方法是什么? 问题答案: 如果我正确理解的话,它应该很简单:
删除第一个元素最简单的方法是什么?
有两个,我想删除一个。我该怎么办?
删除数据帧中的列时,我使用: 这工作很棒。为什么我不能用下面的? 因为可以以的方式访问列/Series,所以我希望这能起作用。