Python3 Pandas的DataFrame数据的增、删、改、查

一、DataFrame数据准备

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

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

  1. import numpy as np
  2. import pandas as pd
  3.  
  4. #测试数据。
  5. df = pd.DataFrame(data = [['lisa','f',22],['joy','f',22],['tom','m','']],index = [1,2,3],columns = ['name','sex','age'])

数据:

  1. name sex age
  2. 1 lisa f 22
  3. 2 joy f 22
  4. 3 tom m 21

二、增删改查操作

1,增

(1).按列增加

  1. citys = ['ny','zz','xy']
  2. df.insert(0,'city',citys) #在第0列,加上column名称为city,值为citys的数值。
  3. jobs = ['student','AI','teacher']
  4. df['job'] = jobs #默认在df最后一列加上column名称为job,值为jobs的数据。
  5. df.loc[:,'salary'] = ['1k','2k','2k','2k','3k'] #在df最后一列加上column名称为salary,值为等号右边数据。

(2)按行增加

  1. #若df中没有index为“4”的这一行的话,该行代码作用是往df中加一行index为“4”,值为等号右边值的数据。若df中已经有index为“4”的这一行,则该行代码作用是把df中index为“4”的这一行修改为等号右边数据。
  2. df.loc[4] = ['zz','mason','m',24,'engineer’]
  3. df_insert = pd.DataFrame({'name':['mason','mario'],'sex':['m','f'],'age':[21,22]},index = [4,5])
  4. #返回添加后的值,并不会修改df的值。ignore_index默认为False,意思是不忽略index值,即生成的新的ndf的index采用df_insert中的index值。若为True,则新的ndf的index值不使用df_insert中的index值,而是自己默认生成。
  5. ndf = df.append(df_insert,ignore_index = True)

2,查

(1)方法一:df['column_name'] 和df[row_start_index, row_end_index]

  1. df['name']
  2. df['gender']
  3. df[['name','gender']] #选取多列,多列名字要放在list里
  4. df[0:] #第0行及之后的行,相当于df的全部数据,注意冒号是必须的
  5. df[:2] #第2行之前的数据(不含第2行)
  6. df[0:1] #第0行
  7. df[1:3] #第1行到第2行(不含第3行)
  8. df[-1:] #最后一行
  9. df[-3:-1] #倒数第3行到倒数第1行(不包含最后1行即倒数第1行,这里有点烦躁,因为从前数时从第0行开始,从后数就是-1行开始,毕竟没有-0)

(2)方法一:df.loc[index,column]

  1. # df.loc[index, column_name],选取指定行和列的数据
  2. df.loc[0,'name'] # 'Snow'
  3. df.loc[0:2, ['name','age']] #选取第0行到第2行,name列和age列的数据, 注意这里的行选取是包含下标的。
  4. df.loc[[2,3],['name','age']] #选取指定的第2行和第3行,name和age列的数据
  5. df.loc[df['gender']=='M','name'] #选取gender列是M,name列的数据
  6. df.loc[df['gender']=='M',['name','age']] #选取gender列是M,name和age列的数据

(3)方法三:iloc[row_index, column_index]

  1. df.iloc[0,0] #第0行第0列的数据,'Snow'
  2. df.iloc[1,2] #第1行第2列的数据,32
  3. df.iloc[[1,3],0:2] #第1行和第3行,从第0列到第2列(不包含第2列)的数据
  4. df.iloc[1:3,[1,2] #第1行到第3行(不包含第3行),第1列和第2列的数据

3,改

(1)改行列标题

  1. df.columns = ['name','gender','age'] #尽管我们只想把’sex’改为’gender’,但是仍然要把所有的列全写上,否则报错。
  2. df.rename(columns = {'name':'Name','age':'Age'},inplace = True) #只修改name和age。inplace若为True,直接修改df,否则,不修改df,只是返回一个修改后的数据。
  3. df.index = list('abc')#把index改为a,b,c.直接修改了df
  4. df.rename({1:'a',2:'b',3:'c'},axis = 0,inplace = True)#无返回值,直接修改dfindex

(2)改数值

<1>使用loc

  1. df.loc[1,'name'] = 'aa' #修改index为‘1’,column为‘name’的那一个值为aa。
  2. df.loc[1] = ['bb','ff',11] #修改index为‘1’的那一行的所有值。
  3. df.loc[1,['name','age']] = ['bb',11] #修改index为‘1’,column为‘name’的那一个值为bb,age列的值为11。

<2>使用iloc[row_index, column_index]

  1. df.iloc[1,2] = 19 #修改某一无素
  2. df.iloc[:,2] = [11,22,33] #修改一整列
  3. df.iloc[0,:] = ['lily','F',15] #修改一整行

4,删

(1)删除行

  1. df.drop([1,3],axis = 0,inplace = False)#删除index值为13的两行,

(2)删除列

  1. df.drop(['name'],axis = 1,inplace = False) #删除name列。
  2. del df['name'] #删除name列。
  3. ndf = df.pop('age') #删除age列,操作后,df都丢掉了age列,age列返回给了ndf。

Python3 Pandas的DataFrame数据的增、删、改、查的更多相关文章

  1. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  2. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  3. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  4. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  5. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

  6. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  7. python基础中的四大天王-增-删-改-查

    列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...

  8. 简单的php数据库操作类代码(增,删,改,查)

    这几天准备重新学习,梳理一下知识体系,同时按照功能模块划分做一些东西.所以.mysql的操作成为第一个要点.我写了一个简单的mysql操作类,实现数据的简单的增删改查功能. 数据库操纵基本流程为: 1 ...

  9. MongoDB增 删 改 查

    增 增加单篇文档 > db.stu.insert({sn:'001', name:'lisi'}) WriteResult({ "nInserted" : 1 }) > ...

随机推荐

  1. 【LeetCode每天一题】Group Anagrams(变位词组)

    Given an array of strings, group anagrams together. Example: Input: ["eat", "tea" ...

  2. 【LeetCode每天一题】Find First and Last Position of Element in Sorted Array(找到排序数组中指定元素的开始和结束下标)

    Given an array of integers nums sorted in ascending order, find the starting and ending position of ...

  3. jmeter 二次开发

    基于jmeter的java请求的二次开发 常用的方法: ①.addArgument("name", "value")    定义参数 ②.sampleStart ...

  4. iOS 开发笔记-控制器tab切换view显示

    在开发过程中,我们常常会碰到一种情况就是,在一个controller里面,经常要放很多复杂的控制,最常用的就是tar切换.tar切换,原理就是在一个controller里面,显示另一个controll ...

  5. C# Control.Invoke匿名委托

    if (txbValue.InvokeRequired) txbValue.Invoke(new MethodInvoker(delegate() {                          ...

  6. SQL语句提取某列中的HTML文本内容。或者说怎么用SQL语句去除所有HTML标签

    CREATE FUNCTION [dbo].[f_trimstr] ( @str NVARCHAR(MAX) ) RETURNS NVARCHAR(MAX) AS     BEGIN          ...

  7. windows下golang环境搭建

    (1)golang安装配置. 下载地址:https://www.golangtc.com/download 解压后直接配置系统环境变量path,加上go.exe所在文件的路径即可. 配置系统环境变量G ...

  8. binTreePosterorderTraversal二叉树的后序遍历

    描述: Given a binary tree, return the postorder traversal of its nodes' values. For example: Given bin ...

  9. 获取数据库连接对象Connection

    2018-11-04  19:50:52 开始写 public Connection getConn() {//返回类型为Connection try { Class.forName("co ...

  10. [转] LoadRunner 获取接口请求响应信息

    Action() { int nHttpRetCode; // 默认最大长度为256,get请求需注意缓存问题,需要根据content-length进行修改 web_set_max_html_para ...