Pandas DataFrame数据的更改、插入新增的列和行的方法


Posted in Python onJune 25, 2019

一、更改DataFrame的某些值

1、更改DataFrame中的数据,原理是将这部分数据提取出来,重新赋值为新的数据。

2、需要注意的是,数据更改直接针对DataFrame原数据更改,操作无法撤销,如果做出更改,需要对更改条件做确认或对数据进行备份。

代码:

import pandas as pd
df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age'])

print("--------更换单个值----------")
# loc和iloc 可以更换单行、单列、多行、多列的值
df1.loc[0,'age']=25   # 思路:先用loc找到要更改的值,再用赋值(=)的方法实现更换值
df1.iloc[0,2]=25     # iloc:用索引位置来查找

# at 、iat只能更换单个值
df1.at[0,'age']=25   # iat 用来取某个单值,参数只能用数字索引
df1.iat[0,2]=25     # at 用来取某个单值,参数只能用index和columns索引名称
print(df1)

结果图:

Pandas DataFrame数据的更改、插入新增的列和行的方法

二、插入新增列、行

代码:

import pandas as pd

df1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age'])

print("----------在最后新增一列---------------")
print("-------案例1----------")
# 在数据框最后加上score一列,元素值分别为:80,98,67,90
df1['score']=[80,98,67,90]  # 增加列的元素个数要跟原数据列的个数一样
print(df1)

print("-------案例2----------")
print("---------在指定位置新增列:用insert()--------")
# 在gender后面加一列城市
# 在具体某个位置插入一列可以用insert的方法
# 语法格式:列表.insert(index, obj)
# index --->对象 obj 需要插入的索引位置。
# obj ---> 要插入列表中的对象(列名)

col_name=df1.columns.tolist()          # 将数据框的列名全部提取出来存放在列表里
print(col_name)

col_name.insert(2,'city')           # 在列索引为2的位置插入一列,列名为:city,刚插入时不会有值,整列都是NaN
df1=df1.reindex(columns=col_name)       # DataFrame.reindex() 对原行/列索引重新构建索引值

df1['city']=['北京','山西','湖北','澳门']  # 给city列赋值
print(df1)

print("----------新增行---------------")
# 重要!!先创建一个DataFrame,用来增加进数据框的最后一行
new=pd.DataFrame({'name':'lisa',
         'gender':'F',
         'city':'北京',
         'age':19,
         'score':100},
         index=[1])  # 自定义索引为:1 ,这里也可以不设置index
print(new)

print("-------在原数据框df1最后一行新增一行,用append方法------------")
df1=df1.append(new,ignore_index=True)  # ignore_index=True,表示不按原来的索引,从0开始自动递增
print(df1)

结果图:

Pandas DataFrame数据的更改、插入新增的列和行的方法

Pandas DataFrame数据的更改、插入新增的列和行的方法

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

Python 相关文章推荐
使用rpclib进行Python网络编程时的注释问题
May 06 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
解析Python中的__getitem__专有方法
Jun 27 Python
浅谈function(函数)中的动态参数
Apr 30 Python
Python正则表达式经典入门教程
May 22 Python
python编写Logistic逻辑回归
Dec 30 Python
Python如何发布程序的详细教程
Oct 09 Python
python动态文本进度条的实例代码
Jan 22 Python
pytorch实现查看当前学习率
Jun 24 Python
Python代码覆盖率统计工具coverage.py用法详解
Nov 25 Python
OpenCV+python实现膨胀和腐蚀的示例
Dec 21 Python
Python 里最强的地图绘制神器
Mar 01 Python
python模拟菜刀反弹shell绕过限制【推荐】
Jun 25 #Python
Pandas之DataFrame对象的列和索引之间的转化
Jun 25 #Python
Pandas之Fillna填充缺失数据的方法
Jun 25 #Python
PYQT5实现控制台显示功能的方法
Jun 25 #Python
Pandas之Dropna滤除缺失数据的实现方法
Jun 25 #Python
PyQT5 QTableView显示绑定数据的实例详解
Jun 25 #Python
Pandas之ReIndex重新索引的实现
Jun 25 #Python
You might like
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
linux iconv方法的使用
2011/10/01 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
PHP编程获取音频文件时长的方法【基于getid3类】
2017/04/20 PHP
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
JavaScript三元运算符的多种使用技巧
2015/04/16 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
深入探讨javascript函数式编程
2015/10/11 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
vue中使用v-model完成组件间的通信
2019/08/22 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
JS数组push、unshift、pop、shift方法的实现与使用方法示例
2020/04/29 Javascript
详解 javascript对象创建模式
2020/10/30 Javascript
python smtplib模块实现发送邮件带附件sendmail
2018/05/22 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
使用Python实现从各个子文件夹中复制指定文件的方法
2018/10/25 Python
Django实现学生管理系统
2019/02/26 Python
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
合伙购房协议样本
2014/10/06 职场文书
拾金不昧表扬信
2015/01/16 职场文书
世界名著读书笔记
2015/06/25 职场文书
民事纠纷协议书
2016/03/23 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL