zoukankan      html  css  js  c++  java
  • pandas DataFrame行或列的删除方法

    pandas DataFrame的增删查改总结系列文章:

    此文我们继续围绕DataFrame介绍相关操作。

    平时在用DataFrame时候,删除操作用的不太多,基本是从源DataFrame中筛选数据,组成一个新的DataFrame再继续操作。

    1. 删除DataFrame某一列

    这里我们继续用上一节产生的DataFrame来做例子,原DataFrame如下:

    我们使用drop()函数,此函数有一个列表形参labels,写的时候可以加上labels=[xxx],也可以不加,列表内罗列要删除行或者列的名称,默认是行名称,如果要删除列,则要增加参数axis=1,操作如下:

    #pd.__version__ =='0.18.0'
    #drop columns
    test_dict_df.drop(['id'],axis=1)
    #test_dict_df.drop(columns=['id']) # official operation, maybe my pandas version needs update!
    

    结果如下,对于上面的代码,官方教程文档中给出了columns=['name'],但是在我测试的时候会报错,我用的python3,pandas版本为0.18,可能是pandas版本太老的缘故。

    这里注意输出的结果是执行此方法的结果,而不是输出test_dict_df的结果,是因为方法默认的并不是在本身执行操作,这时候输出test_dict_df输出的仍然是没有进行删除操作的原DataFrame,如果你想在原DataFrame上进行操作,需要加上inplace=True,等价于在操作完再赋值给本身:

    test_dict_df.drop(['id'],axis=1,inplace=True)
    # test_dict_df = test_dict_df.drop(['id'],axis=1)
    

    2. 删除DataFrame某一行

    删除某一行,在上面删除列操作的时候也稍有提及,如果不加axis=1,则默认按照行号进行删除,例如要删除第0行和第4行:

    test_dict_df.drop([0,4])
    

    同理,你要在源DataFrame上进行操作就得加上inplace参数,否则不会在test_dict_df上改动。

    当然,如果你的DataFrame有很多级,你可以加上level参数,这里就不多赘述了。

  • 相关阅读:
    SQL注入详解
    Nginx跨域及Https配置
    GET请求和POST请求的request和response的中文乱码问题
    创建Maven工程
    Maven环境变量配置
    Cookie&Session会话技术
    Maven库站
    20191002思维导图工具MindManager 000 033
    20190930-02 Redis持久化方式一:RDB及修改RDB的默认持久化策略 000 032
    Tomcat配置HTTPS方式生成安全证书
  • 原文地址:https://www.cnblogs.com/datasnail/p/9767158.html
Copyright © 2011-2022 走看看