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/ironpython:从入门到精通
Oct 02 Python
Python使用turtule画五角星的方法
Jul 09 Python
Python3.6 Schedule模块定时任务(实例讲解)
Nov 09 Python
Python实现判断并移除列表指定位置元素的方法
Apr 13 Python
Python3爬虫之urllib携带cookie爬取网页的方法
Dec 28 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
python全栈知识点总结
Jul 01 Python
opencv调整图像亮度对比度的示例代码
Sep 27 Python
Python基于codecs模块实现文件读写案例解析
May 11 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
几款Python编译器比较与推荐(小结)
Oct 15 Python
Python基于Tkinter开发一个爬取B站直播弹幕的工具
May 06 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
php 文件上传代码(限制jpg文件)
2010/01/05 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
2015/02/07 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
Javascript图像处理—虚拟边缘介绍及使用方法
2012/12/27 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
Eclipse引入jquery报错如何解决
2015/12/01 Javascript
js仿腾讯QQ的web登陆界面
2016/08/19 Javascript
JQuery动态添加Select的Option元素实现方法
2016/08/29 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
微信小程序列表中item左滑删除功能
2018/11/07 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
vue-cli 为项目设置别名的方法
2019/10/15 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
python放大图片和画方格实现算法
2018/03/30 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
PyQt5事件处理之定时在控件上显示信息的代码
2020/03/25 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
《雾凇》教学反思
2014/02/17 职场文书
环境建设实施方案
2014/03/14 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
班级文化建设标语
2014/06/23 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书