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的轻便web框架Bottle
Apr 08 Python
初步介绍Python中的pydoc模块和distutils模块
Apr 13 Python
用C++封装MySQL的API的教程
May 06 Python
Python的Flask开发框架简单上手笔记
Nov 16 Python
Python 正则表达式入门(初级篇)
Dec 07 Python
Python 模块EasyGui详细介绍
Feb 19 Python
让Python更加充分的使用Sqlite3
Dec 11 Python
神经网络相关之基础概念的讲解
Dec 29 Python
Django中的AutoField字段使用
May 18 Python
TensorFlow中如何确定张量的形状实例
Jun 23 Python
TensorFlow Autodiff自动微分详解
Jul 06 Python
Python改变对象的字符串显示的方法
Aug 01 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 程序授权验证开发思路
2009/07/09 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
php函数的常用方法及注意之处小结
2011/07/10 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
jquery中实现标签切换效果的代码
2011/03/01 Javascript
解析javascript 实用函数的使用详解
2013/05/10 Javascript
利用JS进行图片的切换即特效展示图片
2013/12/03 Javascript
基于JSON格式数据的简单jQuery幻灯片插件(jquery-slider)
2016/08/10 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
Vue的路由动态重定向和导航守卫实例
2018/03/17 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
JavaScript面向对象程序设计中对象的定义和继承详解
2019/07/29 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
Python判断两个对象相等的原理
2017/12/12 Python
Python 查看文件的读写权限方法
2018/01/23 Python
Django中的CBV和FBV示例介绍
2018/02/25 Python
Python2.7.10以上pip更新及其他包的安装教程
2018/06/12 Python
python中import与from方法总结(推荐)
2019/03/21 Python
python增加图像对比度的方法
2019/07/12 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
普罗米修斯教学反思
2014/02/06 职场文书
人力资源管理专业应届生求职信
2014/04/24 职场文书
文体活动总结范文
2014/05/05 职场文书
升职演讲稿范文
2014/05/23 职场文书
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
大学毕业典礼致辞
2015/07/29 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技