原文链接:https://blog.csdn.net/zhangchuang601/article/details/79583551

准备工作:
增、删、改、查的方法有很多很多种,这里只展示出常用的几种。

参数inplace默认为False,只能在生成的新数据块中实现编辑效果。当inplace=True时执行内部编辑,不返回任何值,原数据发生改变。

>>> import numpy as np
>>> import pandas as pd

df = pd.DataFrame(data = [['lisa','f',22],['joy','f',22],['tom','m','21']],index = [1,2,3],columns = ['name','sex','age'])#测试数据。
>>> df
name sex age
1 lisa f 22
2 joy f 22
3 tom m 21

一、增
1.按列增加。
>>> citys = ['ny','zz','xy']
>>> df.insert(0,'city',citys) #在第0列,加上column名称为city,值为citys的数值。
>>> jobs = ['student','AI','teacher']
>>> df['job'] = jobs #默认在df最后一列加上column名称为job,值为jobs的数据。
>>> df.loc[:,'salary'] = ['1k','2k','2k','2k','3k'] #在df最后一列加上column名称为salary,值为等号右边数据。
2.按行增加。
>>> df.loc[4] = ['zz','mason','m',24,'engineer’]#若df中没有index为“4”的这一行的话,该行代码作用是往df中加一行index为“4”,值为等号右边值的数据。若df中已经有index为“4”的这一行,则该行代码作用是把df中index为“4”的这一行修改为等号右边数据。
>>> df_insert = pd.DataFrame({'name':['mason','mario'],'sex':['m','f'],'age':[21,22]},index = [4,5])
>>> ndf = df.append(df_insert,ignore_index = True) #返回添加后的值,并不会修改df的值。ignore_index默认为False,意思是不忽略index值,即生成的新的ndf的index采用df_insert中的index值。若为True,则新的ndf的index值不使用df_insert中的index值,而是自己默认生成。
二、查
1. df['column_name'] 和df[row_start_index, row_end_index] 
df['name']
df['gender']
df[['name','gender']] #选取多列,多列名字要放在list里
df[0:] #第0行及之后的行,相当于df的全部数据,注意冒号是必须的
df[:2] #第2行之前的数据(不含第2行)
df[0:1] #第0行
df[1:3] #第1行到第2行(不含第3行)
df[-1:] #最后一行
df[-3:-1] #倒数第3行到倒数第1行(不包含最后1行即倒数第1行,这里有点烦躁,因为从前数时从第0行开始,从后数就是-1行开始,毕竟没有-0)
2. df.loc[index,column] 
# df.loc[index, column_name],选取指定行和列的数据
df.loc[0,'name'] # 'Snow'
df.loc[0:2, ['name','age']] #选取第0行到第2行,name列和age列的数据, 注意这里的行选取是包含下标的。
df.loc[[2,3],['name','age']] #选取指定的第2行和第3行,name和age列的数据
df.loc[df['gender']=='M','name'] #选取gender列是M,name列的数据
df.loc[df['gender']=='M',['name','age']] #选取gender列是M,name和age列的数据
3.  iloc[row_index, column_index]
df.iloc[0,0] #第0行第0列的数据,'Snow'
df.iloc[1,2] #第1行第2列的数据,32
df.iloc[[1,3],0:2] #第1行和第3行,从第0列到第2列(不包含第2列)的数据
df.iloc[1:3,[1,2] #第1行到第3行(不包含第3行),第1列和第2列的数据
三、改
3.1 改行列标题。
>>> df.columns = ['name','gender','age'] #尽管我们只想把’sex’改为’gender’,但是仍然要把所有的列全写上,否则报错。
>>> df.rename(columns = {'name':'Name','age':'Age'},inplace = True) #只修改name和age。inplace若为True,直接修改df,否则,不修改df,只是返回一个修改后的数据。
>>> df.index = list('abc')#把index改为a,b,c.直接修改了df。
>>> df.rename({1:'a',2:'b',3:'c'},axis = 0,inplace = True)#无返回值,直接修改df的index。

3.2 改数值
1. 使用loc
>>> df.loc[1,'name'] = 'aa' #修改index为‘1’,column为‘name’的那一个值为aa。
>>> df.loc[1] = ['bb','ff',11] #修改index为‘1’的那一行的所有值。
>>> df.loc[1,['name','age']] = ['bb',11] #修改index为‘1’,column为‘name’的那一个值为bb,age列的值为11。
2. 使用iloc[row_index, column_index]:
>>> df.iloc[1,2] = 19#修改某一无素
>>> df.iloc[:,2] = [11,22,33] #修改一整列
>>> df.iloc[0,:] = ['lily','F',15] #修改一整行
四、删
1.删除行。
>>> df.drop([1,3],axis = 0,inplace = False)#删除index值为1和3的两行,
2.删除列。
>>> df.drop(['name'],axis = 1,inplace = False) #删除name列。
>>> del df['name'] #删除name列。
>>> ndf = df.pop('age’)#删除age列,操作后,df都丢掉了age列,age列返回给了ndf。

————————————————
版权声明:本文为CSDN博主「夏雨淋河」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhangchuang601/article/details/79583551

pandas 增删改查的更多相关文章

  1. Series 入门(创建和增删改查)

    Series 是pandas两大数据结构中(DataFrame,Series)的一种.使用pandas 前需要将pandas 模块引入,因为Series和DataFrame用的次数非常多,所以将其引入 ...

  2. Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程+事物案例演示

    Dapper的牛逼就不扯蛋了,答应群友做个入门Demo的,现有园友需要,那么公开分享一下: 完整Demo:http://pan.baidu.com/s/1i3TcEzj 注 意 事 项:http:// ...

  3. ASP.NET从零开始学习EF的增删改查

           ASP.NET从零开始学习EF的增删改查           最近辞职了,但是离真正的离职还有一段时间,趁着这段空档期,总想着写些东西,想来想去,也不是很明确到底想写个啥,但是闲着也是够 ...

  4. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查

    系列目录 文章于2016-12-17日重写 在第八讲中,我们已经做到了怎么样分页.这一讲主要讲增删改查.第六讲的代码已经给出,里面包含了增删改,大家可以下载下来看下. 这讲主要是,制作漂亮的工具栏,虽 ...

  5. 通过Java代码实现对数据库的数据进行操作:增删改查

    在写代码之前,依然是引用mysql数据库的jar包文件:右键项目-构建路径-设置构建路径-库-添加外部JAR 在数据库中我们已经建立好一个表xs :分别有xuehao  xingming    xue ...

  6. Hibernate全套增删改查+分页

    1.创建一个web工程 2.导入jar包 3.创建Student表 4.创建实体类 package com.entity; public class Student { private Integer ...

  7. 使用 Json.Net 对Json文本进行 增删改查

    JSON 已经成为当前主流交互格式, 如何在C#中使用 Json.Net 对Json文本进行 增删改查呢?见如下代码 #region Create (从零创建) public static strin ...

  8. yii2 增删改查

    自己总结的yii2 advanced 版本的简单的增删改查,希望对大家有所帮助 1.gii生成的actionCreate()方法中 获取插入语句的id $id = $model->attribu ...

  9. Batis-iBatis基本操作(增删改查)

    Batis-iBatis基本操作(增删改查) 时间 2014-04-10 17:55:20  CSDN博客 原文  http://blog.csdn.net/mazhaojuan/article/de ...

随机推荐

  1. mysql-schema-sync同步两个实例

    参考:https://github.com/hidu/mysql-schema-sync 需求:测试环境表结构变动同步到开发环境,两个实例各有数百个库,不适合每个库写一个配置文件 环境:操作系统ubu ...

  2. JAVA总结--java数据类型

    一.String 1.String定义是指向堆内存中的引用:String的赋值本身是引用对象的切换,切换前后的对象依然存在:源码为:private final char value[]: 2.对多个S ...

  3. HDU 1069 Monkey and Banana dp 题解

    HDU 1069 Monkey and Banana 纵有疾风起 题目大意 一堆科学家研究猩猩的智商,给他M种长方体,每种N个.然后,将一个香蕉挂在屋顶,让猩猩通过 叠长方体来够到香蕉. 现在给你M种 ...

  4. body传参?parameter传参?Request Payload?Query String Parameter?

    今天,是有委屈的一天:今天,是有小情绪的一天.所以,我们要对今天进行小结,跟它做一个了断! 今天,后端来一个接口,告诉我"要用post请求,parameter形式传参".over. ...

  5. WinForm的RadioButton使用小技巧

    http://www.cnblogs.com/sjrhero/articles/1883155.html 当多个RadioButton同在一个容器里面的时候,多半的操作都是要得到其中一个的值这个时候我 ...

  6. [书接上一回]在Oracle Enterprise Linux (v5.7) 中安装DB - (1/4)

    在上一回中,我们安装了OEL了,现在就要安装Oracle数据. 首先登录root用户,输入账号密码或,输入命令行:startx,启动图形界面. 先将虚拟机中插入光碟(Enterprise-R5-U7- ...

  7. 学Python的第四天

    第四天啦,今天依旧代码少的啃树皮.... 但是作业留的有了幼儿园的水准!!!让小编我看到了希望.... #!/usr/bin/env python # -*- coding:utf8 -*- impo ...

  8. python使用etcd

    import sys import etcd client = etcd.Client( host='127.0.0.1', port=2379, allow_reconnect=True) clie ...

  9. git如何上传大文件,突破大小限制

    Github中单个文件的大小限制是100MB,为了能突破这个限制,我们需要使用Git Large File Storage这个工具, git lfs install git lfs track &qu ...

  10. bzoj3123 [Sdoi2013]森林 树上主席树+启发式合并

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3123 题解 如果是静态的查询操作,那么就是直接树上主席树的板子. 但是我们现在有了一个连接两棵 ...