zoukankan      html  css  js  c++  java
  • pandas DataFrame的新增行列,修改、删除、筛选、判断元素以及转置操作

    1)指定行索引和列索引标签

        index 属性可以指定 DataFrame 结构中的索引数组,  columns 属性可以指定包含列名称的行,

        而使用 name 属性,通过对一个 DataFrame 实例进行 df 设置( df.index.name 和 df.columns.name)就可以为 DataFrame 结构指定行索引标签和列索引标签。

       例如,对产品价格表指定行索引标签和列索引标签,其示例代码如下:

    In [24]:  df.index.name = 'id'
    In [25]:  df.columns.name = 'item
    In [26]:  df
    Out[26]:
                  item   product   price
                    id
                     0  电视机    2300.0
                     1    空调    1980.0
                     2  洗衣机     780.0
                     3    电脑       NaN

    2) 添加一列元素

    为 DataFrame 实例添加一列元素的方法就是指定 DataFrame 实例新列的名称,并为其赋值即可。例如,为产品价格增加一个折扣率列,其示例代码如下:

    In [27]:  df['discount']=[0.9,0.85,0.95,1]
    In [28]:  df
    Out[28]:
                item    product  price  discount
                  id
                   0    电视机  2300.0       0.90
                   1      空调  1980.0       0.85
                   2    洗衣机   780.0       0.95
                   3      电脑     NaN       1.00

    或者用 insert() 函数在指定位置添加一列元素。例如,在折扣率列后面,添加一列价格(“price”)乘以折扣率(“discount”)的实际价格(“Actual_price”)列,其示例代码如下:

    In [29]:  df.insert(3,'Actual_price',df['price']*df['discount'])
    In [30]:  df
    Out[30]:
                item    product     price    discount   Actual_price
                  id
                   0     电视机    2300.0       0.90          2070.0
                   1       空调    1980.0       0.85          1683.0
                   2     洗衣机     780.0       0.95           741.0
                   3       电脑       NaN       1.00             NaN

    3) 添加一行元素

    为 DataFrame 实例添加一行元素的方法就是使用 loc 属性为 DataFrame 实例新添加一行,并为此行赋值即可。例如,为产品价格增加一个手机产品的价格行,其示例代码如下:

    In [31]:  df.loc['add_row'] = ['手机',1900,1,1900]
    In [32]:  df
    Out[32]:
                     item    product    price   discount    Actual_price
                       id
                        0     电视机   2300.0       0.90          2070.0
                        1       空调   1980.0       0.85          1683.0
                        2     洗衣机    780.0       0.95           741.0
                        3       电脑      NaN       1.00             NaN
                  add_row       手机   1900.0       1.00          1900.0

    4) 修改一行元素

    修改 DataFrame 对象中的一行元素,只需要使用 loc 属性指定 DataFrame 实例中行索引,并为此行赋值即可。例如,修改产品价格中电脑一行的数据,其示例代码如下:

    In [33]:  df.loc[3] = ['电脑',4500,1,4500]
    In [34]:  df
    Out[34]:
                 item     product     price    iscount  Actual_price
                   id
                    0     电视机      2300.0      0.90       2070.0
                    1       空调      1980.0      0.85       1683.0
                    2     洗衣机       780.0      0.95        741.0
                    3       电脑      4500.0      1.00       4500.0
              add_row       手机      1900.0      1.00       1900.0

    5) 修改一列元素或一个元素

    修改 DataFrame 实例中的一列元素,只要指定 DataFrame 实例中列名称,将要更新的一列元素存放到数组中,然后将此数组赋值给这一列即可。
    例如,修改产品价格中的价格为新价格 [3000,2300,560,5600],其示例代码如下:

    In [35]:  df['price']=[3000,2300,560,5600,1880]
    In [36]:  df
    Out[36]:
                 item     product   price  discount     Actual_price
                   id
                    0    电视机     3000       0.90           2070.0
                    1       空调    2300       0.85           1683.0
                    2     洗衣机     560       0.95            741.0
                    3       电脑    5600       1.00           4500.0
              add_row       手机    1880       1.00           1900.0

    修改一个元素,只需要选择该元素,直接给其赋值即可。例如 df['discount'][1]=0.96。

    6) 删除元素

     6.1) 使用 del 命令删除一列元素

    如果要删除一整列的所有数据,使用 del 命令。例如,删除产品价格中的实际价格列,其示例代码如下:

    In [37]:  del df['Actual_price']
    In [38]:  df
    Out[38]:
                 item   product   price      discou
                   id
                    0    电视机    3000        0.90
                    1      空调    2300        0.85
                    2    洗衣机     560        0.95
                    3      电脑    5600        1.00
              add_row      手机    1880        1.00

    6.2) 使用 pop() 函数删除一列元素

      pop() 函数可以将所选列从原数据块中删除,原数据块不再保留该列。例如,使用 pop() 函数删除折扣率列,其示例代码如下:

    In [39]:  df.pop('discount')
    Out[39]:  id
               0          0.90
               1          0.85
               2          0.95            3          1.00
               add_row    1.00
               Name: discount, dtype: float64

     6.3) 使用 drop() 函数删除一列元素或删除一行元素

    在 drop() 函数中有两个参数,一个参数是 axis,当参数 axis=1 时,则删除列元素;当 axis=0 时,则删除行元素。还有一个参数是 inplace,当 inplace 为 True 时,drop() 函数执行内部删除,不返回任何值,原数据发生改变;当 inplace 为 False 时,原数据不会发生改变,只是输出新变量删除。

    例如,先添加 1 列折扣率列,然后再用 drop() 函数设置参数 axis=1 和 inplace=True 删除折扣率的列元素,其示例代码如下:

    In [40]:  df['discount']=0.94
    In [41]:  df.drop(['discount'],axis=1,inplace=True)

    如果要删除一行,则设置 axis=0,并指定删除的行索引或行标签。例如,删除行标签为 add_row 的一行元素,其示例代码如下:

    In [42]:  df.drop(['add_row'],axis=0,inplace=True)

    如果要删除多行,除了设置 axis=0 外,还要指定删除的行索引或行标签,例如,删除第 1 行和第 3 行元素,其示例代码如下:

    In [43]:  df.drop([0,2],axis=0,inplace=True)

    7) 筛选元素

    对于 DataFrame 对象,也可以通过指定条件来筛选元素。例如,筛选出产品价格中价格大于 2000 元的产品信息,其示例代码如下:

    In [44]:  df[df['price']>2000]
    Out[44]:
              item    product   price
                id
                 0     电视机    3000
                 1       空调    2300
                 3       电脑    5600

    例如,筛选出产品价格中所有元素都小于 2000 元的产品信息,其示例代码如下:

    In [45]:  df[df<2000]
    Out[45]:
              item    product   price
                id
                 0    电视机      NaN
                 1      空调      NaN
                 2    洗衣机      560
                 3      电脑      NaN

    返回的 DataFrame 对象中只包含满足条件的数字,各元素的位置保持不变,其他不符合条件的元素替换成 NaN。

    8)判断元素是否存在

    使用 isin() 函数可以判断给定的一列元素是否包含在 DataFrame 结构中,如果给定的元素包含在数据结构中,isin() 函数返回是 True,否则返回是 False。利用此函数可以筛选 DataFrame 列中的数据。

    例如判断产品价格中是否存在“电脑”和 2300 这两个元素,并返回满足条件的元素,其示例代码如下:

    In [46]:  df[df.isin(['电脑',2300])]
    Out[46]:
              item    product    price
                id
                 0       NaN       NaN
                 1       NaN    2300.0
                 2       NaN       NaN
                 3      电脑       NaN

    9) DataFrame 转置

    DataFrame 数据结构类似于表格数据结构,在处理表格数据时,常常会用到转置操作,即将列变成行,行变成列。pandas 提供了一种简单的转置方法,就是通过调用T属性获得 DataFrame 对象的转置形式。

    例如将产品价格数据结构进行转置操作,其示例代码如下:

    In [47]:  df.T
    Out[47]:
                   id      0     1       2         3
                  item
                product   电视机   空调   洗衣机      电脑
                price     3000  2300      560       5600
    

      

  • 相关阅读:
    CentOS中的中文乱码问题的解决
    xml2config not found. Please check your libxml2 installation.
    yii数据库存储对象DAO
    linux常用svn命令
    通过rpm包安装、配置及卸载mysql的详细过程.
    php Undefined index和Undefined variable的解决方法
    【30篇突击 android】源码统计四
    【30篇突击 android】源码统计三
    Android 新手入门指导
    android 问题汇总系列之三
  • 原文地址:https://www.cnblogs.com/aitree/p/14309197.html
Copyright © 2011-2022 走看看