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

pandas DataFrame的新增行列,修改、删除、筛选、判断元素以及转置操作的更多相关文章

  1. pandas DataFrame行或列的删除方法

    pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...

  2. ext,exrReturn新增,修改删除等用

    package cn.edu.hbcf.common.vo; /** * Ext Ajax 返回对象 * * @author * @date 2012-02-21 19:30:00 * */ publ ...

  3. pandas DataFrame的修改方法

    pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...

  4. pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)

    pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...

  5. pandas DataFrame的创建方法

    pandas DataFrame的增删查改总结系列文章: pandas DaFrame的创建方法 pandas DataFrame的查询方法 pandas DataFrame行或列的删除方法 pand ...

  6. Python之如何删除pandas DataFrame的某一/几列

    删除pandas DataFrame的某一/几列: 方法一:直接del DF['column-name']   方法二:采用drop方法,有下面三种等价的表达式: 1. DF= DF.drop('co ...

  7. [PHP] - Laravel - 列表、新增、修改、删除例子

    前言 Laravel默认是自带了CURD的功能,使用路由的Route::resource可以做到. 但真正的项目中,这往往不是我们所需要的.因为一个项目会有比较复杂的计算.验证等功能. 下面是对项目中 ...

  8. MYSQL基础01(新增,修改,删除)

    首先说明一下,本人之前一直都是用MSSQL,由于工作原因,每天写上百条sql语句,并持续了几年;由于换了工作目前主要接触的MYSQL;所以现在开始学习MYSQL. 我的学习计划很简单,我在MSSQL使 ...

  9. 关于C#和ASP.NET中对App.config和Web.config文件里的[appSettings]和[connectionStrings]节点进行新增、修改、删除和读取相关的操作

    最近我做的一些项目,经常需要用到对应用程序的配置文件操作,如app.config和web.config的配置文件,特别是对配置文件中的[appSettings]和[connectionStrings] ...

随机推荐

  1. Web常用编码以及攻击绕过笔记

    一.URL编码形式:"%"加上ASCII码(先将字符转换为两位ASCII码,再转为16进制),其中加号"+"在URL编码中和"%20"表示一 ...

  2. PHPCMS V9.6.0 SQL注入漏洞分析

    0x01 此SQL注入漏洞与metinfo v6.2.0版本以下SQL盲注漏洞个人认为较为相似.且较为有趣,故在此分析并附上exp. 0x02 首先复现漏洞,环境为: PHP:5.4.45 + Apa ...

  3. Python利用zmail收取邮件

    收取邮件一般用pop和imap,这里使用国人大神开发的zmail来收取: 1 ''' 2 #利用zmail收取邮件 3 #只要几行代码 4 #安装库:pip3 install zmail 5 #国内大 ...

  4. 手把手教你搭饥荒专用服务器(五)—MOD自动下载安装(Windows+Linux)

    想了解更详细内容,请点击原文地址:https://wuter.cn/1985.html/ 饥荒专用服务器的mod设置总共有两种方法. 方法一 在本地游戏中更新mod,然后把mod上传到服务器,但是这种 ...

  5. 使用pdf2htmlEX将pdf文件转为html

    https://github.com/coolwanglu/pdf2htmlEX 参考github文档,转换出来的的效果貌似很好,可以参考OFFICE 文档转换为html在线预览. pdf2swf 和 ...

  6. element-ui 表单 v-if 不能验证问题

    element-ui 表单v-if 很多人会遇到无法验证的问题,网上很多是在el-form-item标签前加一个div然后把v-if拿到div上去像这样 <div v-if="addc ...

  7. 在 easyui中获取form表单中所有提交的数据 拼接到table列表中

    form表单===== <!-- 并用药品填写信息弹框 --> <div id="usingProdctMsgDiv" style="display: ...

  8. Redis基础篇(六)数据同步:主从复制

    Redis具有高可靠性,体现在两方面: 一是数据尽量少丢失,通过前面介绍的持久化方式AOF和RDB,在宕机时可以恢复数据. 二是服务尽量少中断,通过副本冗余来实现. 今天我们学习的就是通过主从复制实现 ...

  9. stm32学习笔记之SysTick的思考

    原文来自--SevenZ的笔记.http://blog.21ic.com/user1/8247/archives/2011/85920.html ? 首先我们要明白什么是SysTick定时器? Sys ...

  10. 强化学习 1 --- 马尔科夫决策过程详解(MDP)

    强化学习 --- 马尔科夫决策过程(MDP) 1.强化学习介绍 ​ 强化学习任务通常使用马尔可夫决策过程(Markov Decision Process,简称MDP)来描述,具体而言:机器处在一个环境 ...