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 04 Python
python刷投票的脚本实现代码
Nov 08 Python
Python中的日期时间处理详解
Nov 17 Python
解决PyCharm的Python.exe已经停止工作的问题
Nov 29 Python
python3下载抖音视频的完整代码
Jun 05 Python
tensorflow如何批量读取图片
Aug 29 Python
Django继承自带user表并重写的例子
Nov 18 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
May 23 Python
python中rb含义理解
Jun 18 Python
详解python logging日志传输
Jul 01 Python
关于python3.9安装wordcloud出错的问题及解决办法
Nov 02 Python
K近邻法(KNN)相关知识总结以及如何用python实现
Jan 28 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
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
PHP实现字符串大小写转函数的功能实例
2019/02/06 PHP
php函数式编程简单示例
2019/08/08 PHP
Save a File Using a File Save Dialog Box
2007/06/18 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
Python实现的HTTP并发测试完整示例
2020/04/23 Python
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
python正则实现提取电话功能
2018/02/24 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
Python 忽略warning的输出方法
2018/10/18 Python
python自动发送测试报告邮件功能的实现
2019/01/22 Python
python 字符串常用方法汇总详解
2019/09/16 Python
PyTorch预训练的实现
2019/09/18 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
2020/04/16 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
纯css3显示隐藏一个div特效的具体实现
2014/02/10 HTML / CSS
P/Invoke是什么
2015/07/31 面试题
事业单位绩效考核实施方案
2014/03/27 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
解决numpy数组互换两行及赋值的问题
2021/04/17 Python
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers