pandas DataFrame的修改方法(值、列、索引)


Posted in Python onAugust 02, 2019

对于DataFrame的修改操作其实有很多,不单单是某个部分的值的修改,还有一些索引的修改、列名的修改,类型修改等等。我们仅选取部分进行介绍。

一、值的修改

DataFrame的修改方法,其实前面介绍loc方法的时候介绍了一些。

1、 loc方法修改

loc方法实际上是定位某个位置的数据的,但是定位完以后就可以对此位置的数据进行修改,使用此方法可以对DataFrame进行的修改如下:
1.对某行、某N行进行修改;
2.对某列、某N列进行修改;
3.对横坐标为某行或某N行,纵坐标为某列或者某N列的数据进行修改;

可以看出基本用loc方法我们对DataFrame可以进行任意修改了。

1.1 对某行、某N行进行修改

# 对第1行进行修改
test_dict_df.loc[1:1,('english','id','math','name')]=[90,2,100,'Alice_m']
# 对第0行到第1行进行修改
test_dict_df.loc[0:1,('english','id','math','name')]=[[90,1,100,'Alice_m'],[70,2,100,'Bob']]
# 对第0行和第2行进行修改
test_dict_df.loc[0:3:2,('english','id','math','name')]=[[90,1,100,'Alice_m'],[70,2,100,'Bob']]

可以看出具体的方法就是用loc方法,对某行或者某N行进行定位,然后赋予合适的格式的值就可以了。

1.2 对某列、某N列进行修改

学会了使用loc方法对行的修改,那触类旁通,对列的修改也很简单了。对列修改也就是修改此列的所有行。

# 对第english列进行修改
test_dict_df.loc[:,('english')]=[90,80,70,90,90,59] #test_dict_df.loc[:,'english']=[90,80,70,90,90,59]
# 对第english列和id列进行修改,注意赋值的写法
test_dict_df.loc[:,('english','id')]=[[90,1],[80,2],[80,2],[80,2],[80,2],[80,2]]

1.3 对某个区域的值进行修改

# 对第1、2行的english列和 id列进行修改
test_dict_df.loc[1:2,('english','id')]=[[38,2],[23,2]]

1.4总结

可以看到loc方法就是,只要你能选到某个或者某个区域的值,然后就可以对此部分的值进行修改。但是要注意赋值部分的组织方式。

2、 iloc、at、iat方法修改

类比于上面的方式,其实只要能选择,都是可以修改的。选择方法可以看pandas DataFrame的查询(选择)篇。

二、列名的修改

1、直接全部更改

这种方法是对DataFrame的列名进行重新赋值,比较暴力直接。

test_dict_df.columns=['english_new','id_new','math_new','name_new']

2、使用rename方法

这种方法是比较推荐的,通过rename方法,注意参数inplace=True的时候,才能真正的在原来的DataFrame上进行修改。

test_dict_df.rename(columns={'english_new':'english'},inplace=True)

三、索引的修改

1、修改索引名称

上面的rename方法,如果不写columns=xx就默认修改索引了 。

test_dict_df.rename({0:'english1'},inplace=True)

2、重置索引

通过reset_index()方法我们可以重置索引,drop参数为True时,直接丢弃原来的索引,否则原来的索引新生成一列名为'index'的列:

test_dict_df.reset_index(inplace=True,drop=True)

3、设置其他列为索引

当然我们也可以用其他列为索引,通过set_index()方法:

test_dict_df.set_index('id_new')

四、总结

可以看到,所谓的修改首先要能选择修改的位置,即定位,然后对确定好的位置进行重新赋值,所以我们学会了如何选择数据,也就基本能修改此处的数据。

源代码:github

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用PYTHON接收多播数据的代码
Mar 01 Python
Python实现的简单文件传输服务器和客户端
Apr 08 Python
Python导入txt数据到mysql的方法
Apr 08 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 Python
Python 实现12306登录功能实例代码
Feb 09 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
Linux上使用Python统计每天的键盘输入次数
Apr 17 Python
Python 数据可视化pyecharts的使用详解
Jun 26 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
Aug 23 Python
Python基于Dlib的人脸识别系统的实现
Feb 26 Python
Python同时迭代多个序列的方法
Jul 28 Python
python 动态渲染 mysql 配置文件的示例
Nov 20 Python
Flask框架钩子函数功能与用法分析
Aug 02 #Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 #Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 #Python
详解pandas DataFrame的查询方法(loc,iloc,at,iat,ix的用法和区别)
Aug 02 #Python
pandas DataFrame创建方法的方式
Aug 02 #Python
django项目环境搭建及在虚拟机本地创建django项目的教程
Aug 02 #Python
Django缓存系统实现过程解析
Aug 02 #Python
You might like
第八节--访问方式
2006/11/16 PHP
php实现将Session写入数据库
2015/07/26 PHP
yii2.0实现验证用户名与邮箱功能
2015/12/22 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
2015/12/24 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
JavaScript italics方法入门实例(把字符串显示为斜体)
2014/10/17 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
AngularJS  ng-table插件设置排序
2016/09/21 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
jquery实现简单自动轮播图效果
2020/07/29 jQuery
python基础教程之类class定义使用方法
2014/02/20 Python
Python argv用法详解
2016/01/08 Python
Python脚本处理空格的方法
2016/08/08 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
使用Python进行中文繁简转换的实现代码
2019/10/18 Python
Python Websocket服务端通信的使用示例
2020/02/25 Python
使用css3实现的tab选项卡代码分享
2014/12/09 HTML / CSS
CSS3色彩模式有哪些?CSS3 HSL色彩模式的定义
2016/04/26 HTML / CSS
创业计划书六个要素
2013/12/26 职场文书
黄金酒广告词
2014/03/21 职场文书
大学生演讲稿
2014/04/25 职场文书
大学生找工作求职信
2014/07/09 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
企业财务管理制度范本
2015/08/04 职场文书
2019 入党申请书范文
2019/07/10 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
详解CSS不受控制的position fixed
2021/05/25 HTML / CSS