12 2020 档案
摘要:Q1。Python中的列表和元组有什么区别? 列表与TUPLES LIST TUPLES 列表是可变的,即可以编辑它们。 元组是不可变的(元组是无法编辑的列表)。 列表比元组慢。 元组比列表更快。 语法:list_1 = [10,'Chelsea',20] 语法:tup_1 =(10,'Chelse
阅读全文
摘要:选择优化的数据类型 更小的通常更好 一般情况下,应该使用正确存储数据的最小类型 因为占用的内存、磁盘、cpu资源更少 简单就好 简单的数据类型需要的CPU周期更少,例如操作整型比操作字符代价更低 尽量避免NULL,如果不是特别的需要null值,一般设为不为空,因为mysql对null的索引比较复杂
阅读全文
摘要:Redis 的数据类型(数据结构) string (二进制安全,可以存储任意类型的数据) list(链表) 字典(就是hashmap) set(不重复无序的hashmap) zset(按照给定的 score 排序的 set) HyperLogLog(来做基数统计的算法,简介) Geo(支持地理位置的
阅读全文
摘要:Redis中有一个经典的问题,在巨大的数据量的情况下,做类似于查找符合某种规则的Key的信息,这里就有两种方式,一是keys命令,简单粗暴,由于Redis单线程这一特性,keys命令是以阻塞的方式执行的,keys是以遍历的方式实现的复杂度是 O(n),Redis库中的key越多,查找实现代价越大,产
阅读全文
摘要:一、聚簇索引的构造 聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。具体的细节依赖于其实现方式,但InnoDB的聚族索引实际上在同一个结构中保存了B-Tree索引和数据行。当表有聚簇索引时,它的数据行存放在索引的叶子页中。术语“聚族”表示数据行和相邻的键值紧凑的存储在一起。因为无法同时把数据
阅读全文
摘要:一:mysql和程序实例 要说明这个问题,我们首先来建立三张表,分别是user_auto_key,user_uuid,user_random_key,分别表示自动增长的主键,uuid作为主键,随机key作为主键,其它我们完全保持不变.根据控制变量法,我们只把每个表的主键使用不同的策略生成,而其他的字
阅读全文
摘要:MySQL逻辑架构 第一层是客户端连接,例如mysql命令行工具 第二层是MySQL核心服务 第三层是存储引擎,负责数据的存储与提取 优化与执行 MySQL会解析查询,并创建内部数据结构(解析树),然后对其进行优化,例如:重写查询、决定表的读取顺序、选择合适的索引等。 并发控制 MySQL在服务器层
阅读全文
摘要:什么是持久化 利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化 为什么要进行持久化 防止数据的意外丢失,确保数据安全性 持久化过程保存什么 1.将当前数据状态进行保存,快照形式,存储数据结果,存储格式简单,关注点在数据 RDB 2.将数据的操作过程进行保存,日志
阅读全文
摘要:下面代码会输出什么: def f(x,l=[]): for i in range(x): l.append(i*i) print l f(2) f(3,[3,2,1]) f(3) 答案: [0, 1] [3, 2, 1, 0, 1, 4] [0, 1, 0, 1, 4] 第一个函数调用十分明显,fo
阅读全文
摘要:本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内
阅读全文
摘要:Redis的AOF持久化 以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录),aof保存的是appendonly.aof文件,只许追加文件但不可以改写文件,redis启动之初会读取该文件重新构建数据,换言之,redis重启的话就根据日志文件的内容将写指令从前到后执行
阅读全文
摘要:在运行的时候,有时候会报编码错误,本文就来研究一下这个问题。 为什么会出现乱码呢?因为在文件存的时候格式和读取时候格式不一致就会乱码了。 字符串在python内部的表示是unicode编码,也可以说现在的内存是unicode编码格式,硬盘是utf-8。平常的数据操作都是先把数据读取到内存中,所以内存
阅读全文
摘要:在过去的五年里,Web开发人员的可用工具实现了跨越式地增长。当技术专家不断推动极限,使Web应用无处不在时,我们也不得不升级我们的工具、创建框架以保证构建更好的应用。我们希望能够使用新的工具,方便我们写出更加整洁、可维护的代码,使部署到世界各地的用户时拥有高效的可扩展性。 这就让我们谈论到Torna
阅读全文
摘要:Tornado 是一个基于Python的Web服务框架和 异步网络库, 最早开发与 FriendFeed 公司. 通过利用非阻塞网络 I/O, Tornado 可以承载成千上万的活动连接, 完美的实现了 长连接, WebSockets, 和其他对于每一位用户来说需要长连接的程序. Tornado 可
阅读全文
摘要:Redis 基于 Reactor 模式开发了自己的网络事件处理器: 这个处理器被称为文件事件处理器(file event handler): 文件事件处理器使用 I/O 多路复用(multiplexing)程序来同时监听多个套接字, 并根据套接字目前执行的任务来为套接字关联不同的事件处理器。 当被监
阅读全文
摘要:AOF 持久化功能的实现可以分为命令追加(append)、文件写入、文件同步(sync)三个步骤。 命令追加 当 AOF 持久化功能处于打开状态时, 服务器在执行完一个写命令之后, 会以协议格式将被执行的写命令追加到服务器状态的 aof_buf 缓冲区的末尾: struct redisServer
阅读全文
摘要:假如我们要用某种数据结构来维护一组有序的int型数据的集合,并且希望这个数据结构在插入、删除、查找等操作上能够尽可能着快速,那么,你会用什么样的数据结构呢? 数组 一种很简单的方法应该就是采用数组了,在查找方面,用数组存储的话,采用二分法可以在 O(logn) 的时间里找到指定的元素,不过数组在插入
阅读全文
摘要:图 IMAGE_RDB_STRUCT_OVERVIEW 展示了一个完整 RDB 文件所包含的各个部分。 注意 为了方便区分变量、数据、常量, 图 IMAGE_RDB_STRUCT_OVERVIEW 中用全大写单词标示常量, 用全小写单词标示变量和数据。 本章展示的所有 RDB 文件结构图都遵循这一规
阅读全文
摘要:Redis 是一个键值对(key-value pair)数据库服务器, 服务器中的每个数据库都由一个 redis.h/redisDb 结构表示, 其中, redisDb 结构的dict 字典保存了数据库中的所有键值对, 我们将这个字典称为键空间(key space): typedef struct
阅读全文
摘要:除了前面介绍过的 type 、 encoding 、 ptr 和 refcount 四个属性之外, redisObject 结构包含的最后一个属性为 lru 属性, 该属性记录了对象最后一次被命令程序访问的时间: typedef struct redisObject { // ... unsigne
阅读全文
摘要:因为 C 语言并不具备自动的内存回收功能, 所以 Redis 在自己的对象系统中构建了一个引用计数(reference counting)技术实现的内存回收机制, 通过这一机制, 程序可以通过跟踪对象的引用计数信息, 在适当的时候自动释放对象并进行内存回收。 每个对象的引用计数信息由 redisOb
阅读全文
摘要:Redis 中用于操作键的命令基本上可以分为两种类型。 其中一种命令可以对任何类型的键执行, 比如说 DEL 命令、 EXPIRE 命令、 RENAME 命令、 TYPE 命令、 OBJECT 命令, 等等。 举个例子, 以下代码就展示了使用 DEL 命令来删除三种不同类型的键: # 字符串键 re
阅读全文
摘要:有序集合的编码可以是 ziplist 或者 skiplist 。 ziplist 编码的有序集合对象使用压缩列表作为底层实现, 每个集合元素使用两个紧挨在一起的压缩列表节点来保存, 第一个节点保存元素的成员(member), 而第二个元素则保存元素的分值(score)。 压缩列表内的集合元素按分值从
阅读全文
摘要:集合对象的编码可以是 intset 或者 hashtable 。 intset 编码的集合对象使用整数集合作为底层实现, 集合对象包含的所有元素都被保存在整数集合里面。 举个例子, 以下代码将创建一个如图 8-12 所示的 intset 编码集合对象: redis> SADD numbers 1 3
阅读全文
摘要:集合对象的编码可以是 intset 或者 hashtable 。 intset 编码的集合对象使用整数集合作为底层实现, 集合对象包含的所有元素都被保存在整数集合里面。 举个例子, 以下代码将创建一个如图 8-12 所示的 intset 编码集合对象: redis> SADD numbers 1 3
阅读全文
摘要:哈希对象的编码可以是 ziplist 或者 hashtable 。 ziplist 编码的哈希对象使用压缩列表作为底层实现, 每当有新的键值对要加入到哈希对象时, 程序会先将保存了键的压缩列表节点推入到压缩列表表尾, 然后再将保存了值的压缩列表节点推入到压缩列表表尾, 因此: 保存了同一键值对的两个
阅读全文
摘要:列表对象的编码可以是 ziplist 或者 linkedlist 。 ziplist 编码的列表对象使用压缩列表作为底层实现, 每个压缩列表节点(entry)保存了一个列表元素。 举个例子, 如果我们执行以下 RPUSH 命令, 那么服务器将创建一个列表对象作为 numbers 键的值: redis
阅读全文
摘要:字符串对象的编码可以是 int 、 raw 或者 embstr 。 如果一个字符串对象保存的是整数值, 并且这个整数值可以用 long 类型来表示, 那么字符串对象会将整数值保存在字符串对象结构的 ptr属性里面(将 void* 转换成 long ), 并将字符串对象的编码设置为 int 。 举个例
阅读全文
摘要:Redis 使用对象来表示数据库中的键和值, 每次当我们在 Redis 的数据库中新创建一个键值对时, 我们至少会创建两个对象, 一个对象用作键值对的键(键对象), 另一个对象用作键值对的值(值对象)。 举个例子, 以下 SET 命令在数据库中创建了一个新的键值对, 其中键值对的键是一个包含了字符串
阅读全文
摘要:对象 在前面的数个章节里, 我们陆续介绍了 Redis 用到的所有主要数据结构, 比如简单动态字符串(SDS)、双端链表、字典、压缩列表、整数集合, 等等。 Redis 并没有直接使用这些数据结构来实现键值对数据库, 而是基于这些数据结构创建了一个对象系统, 这个系统包含字符串对象、列表对象、哈希对
阅读全文
摘要:压缩列表 压缩列表(ziplist)是列表键和哈希键的底层实现之一。 当一个列表键只包含少量列表项, 并且每个列表项要么就是小整数值, 要么就是长度比较短的字符串, 那么 Redis 就会使用压缩列表来做列表键的底层实现。 比如说, 执行以下命令将创建一个压缩列表实现的列表键: redis> RPU
阅读全文
摘要:跳跃表是一种可以对有序链表进行近似二分查找的数据结构,redis 在两个地方用到了跳跃表,一个是实现有序集合,另一个是在集群节点中用作内部数据结构。 跳跃表 ( skiplist ) 是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。 跳跃表支持平均O (
阅读全文
摘要:跳跃表(skiplist)是一种有序数据结构, 它通过在每个节点中维持多个指向其他节点的指针, 从而达到快速访问节点的目的。 在大部分情况下, 跳跃表的效率可以和平衡树相媲美, 并且因为跳跃表的实现比平衡树要来得更为简单, 所以有不少程序都使用跳跃表来代替平衡树。 Redis 使用跳跃表作为有序集合
阅读全文
摘要:当有两个或以上数量的键被分配到了哈希表数组的同一个索引上面时, 我们称这些键发生了冲突(collision)。 Redis 的哈希表使用链地址法(separate chaining)来解决键冲突: 每个哈希表节点都有一个 next 指针, 多个哈希表节点可以用 next 指针构成一个单向链表, 被分
阅读全文
摘要:当要将一个新的键值对添加到字典里面时, 程序需要先根据键值对的键计算出哈希值和索引值, 然后再根据索引值, 将包含新键值对的哈希表节点放到哈希表数组的指定索引上面。 Redis 计算哈希值和索引值的方法如下: # 使用字典设置的哈希函数,计算键 key 的哈希值 hash = dict->type-
阅读全文
摘要:Redis 的字典使用哈希表作为底层实现, 一个哈希表里面可以有多个哈希表节点, 而每个哈希表节点就保存了字典中的一个键值对。 接下来的三个小节将分别介绍 Redis 的哈希表、哈希表节点、以及字典的实现。 哈希表 Redis 字典所使用的哈希表由 dict.h/dictht 结构定义: typed
阅读全文
摘要:字典 字典, 又称符号表(symbol table)、关联数组(associative array)或者映射(map), 是一种用于保存键值对(key-value pair)的抽象数据结构。 在字典中, 一个键(key)可以和一个值(value)进行关联(或者说将键映射为值), 这些关联的键和值就被
阅读全文
摘要:每个链表节点使用一个 adlist.h/listNode 结构来表示: typedef struct listNode { // 前置节点 struct listNode *prev; // 后置节点 struct listNode *next; // 节点的值 void *value; } lis
阅读全文
摘要:链表 链表提供了高效的节点重排能力, 以及顺序性的节点访问方式, 并且可以通过增删节点来灵活地调整链表的长度。 作为一种常用数据结构, 链表内置在很多高级的编程语言里面, 因为 Redis 使用的 C 语言并没有内置这种数据结构, 所以 Redis 构建了自己的链表实现。 链表在 Redis 中的应
阅读全文
摘要:根据传统, C 语言使用长度为 N+1 的字符数组来表示长度为 N 的字符串, 并且字符数组的最后一个元素总是空字符 '\0' 。 比如说, 图 2-3 就展示了一个值为 "Redis" 的 C 字符串: C 语言使用的这种简单的字符串表示方式, 并不能满足 Redis 对字符串在安全性、效率、以及
阅读全文
摘要:Redis简单动态字符串 Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型, 并将 SDS 用作 Redis 的默认字符串表示。 在 Redis
阅读全文
摘要:这个问题好像和长时间连接数据库但不打开网页时,报错lost connection是一个原因 问题: 写了一个基于apscheduler的定时任务,里面的任务使用了sqlalchemy,大致如下: scheduler.py # ... # 此处省略 import # 示例任务1 def example
阅读全文
摘要:在 Python 开发中,yield 关键字的使用其实较为频繁,例如大集合的生成,简化代码结构、协程与并发都会用到它。 但是,你是否真正了解 yield 的运行过程呢? 这篇文章,我们就来看一下 yield 的运行流程,以及在开发中哪些场景适合使用 yield。 生成器 如果在一个方法内,包含了 y
阅读全文
摘要:使用 Scrapy 开发一个爬虫非常简单,这里使用 Scrapy 官网上的例子来说明如何编写一个简单爬虫: 简单来讲,编写和运行一个爬虫只需以下几步: 使用 scrapy startproject 命令创建一个爬虫模板,或自己按模板编写爬虫代码 定义一个爬虫类,并继承 scrapy.Spider,然
阅读全文
摘要:从这篇文章开始,我们来介绍Redis高可用相关的机制。Redis要想实现高可用,主要有以下方面来保证: 数据持久化 主从复制 自动故障恢复 集群化 这篇文章我们先介绍Redis的高可用保障的基础:数据持久化。因为Redis的主从复制和自动故障恢复,都需要依赖Redis持久化相关的东西。同时,Redi
阅读全文
摘要:选择优化的数据类型原则: 1. 更小的通常更好 尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为它们占用更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少。 2. 简单就好 简单数据类型需要更少的CPU周期,比如整型比字符操作代价更低,因为字符集和排序规则使字符比较比
阅读全文
摘要:有一条select语句,平常查询很快,突然有一天查询很慢,可能的原因是? 锁冲突 索引失效,导致统计数据不真实 列举常见的关系型数据库与非关系型数据库 关系型数据库:Oracle、DB2、SQL Server、Microsoft Access、MySQL 非关系型数据库:NoSql、Cloudant
阅读全文
摘要:About pymysql 在Python2.x中,Python连接MySQL服务器使用mysqldb库,但是它只支持到Python2.x,在Python3.x中由pymysql模块代替。 PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQ
阅读全文
摘要:about MySQL提供了丰富的内置函数自定义函数。 而我们也对这些函数有所了解,比如聚合函数。 本篇再来了解一些内置函数和自定义函数的编写。 写在前面的话:默认情况下,函数名称和其后的括号之间必须没有空格。这有助于MySQL解析器区分函数调用和对与函数名称相同的表或列的引用。但是,函数参数周围可
阅读全文
摘要:about 视图是虚拟表,是从数据库中一个或多个表中导出来的表,其内容由查询定义;同真实表(基表)一样,视图包含一系列带有名称的字段和记录,在使用视图时动态生成。视图的数据变化会影响到基表,基表的数据变化也会影响到视图(insert、update、delete)。 另外,创建视图需要有create
阅读全文
摘要:多表连接查询 多表连接,就是将几张表拼接为一张表,然后进行查询,先来看基本语法: SELECT col1, col2 FROM t1 INNER/LEFT/RIGHT JOIN t2 ON 连接条件(t1.col=t2.col) ; 接下来,来研究连接时的几种情况。 交叉连接 交叉连接时,不使用任何
阅读全文
摘要:from from的两种常用方式: SELECT col1,col2 FROM 表; -- 查询指定列 SELECT * FROM 表; -- 全表查询,不要在生产中使用,性能太差 一般在生产中,select语句不加where语句是不允许通过的。 在查询中也可以使用四则运算: SELECT popu
阅读全文
摘要:一、需求背景 万恶的产品经理,在不同场景有不同的排序需求,有时候根据字段 0 1 2 升序 ,有时候又是1 2 0 这样排序,重点是还要分页,就无法使用代码去实现排序,只能用纯sql语句。 假设现在有一个订单表,表里有个字段为pay_status,0为未支付,1为已支付,2为支付失败 如果按照 支付
阅读全文
摘要:前言 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等。这些特征值并不是连续的,而是离散的,无序的。通常我们需要对其进行特征数字化。 那什么是特征数字化呢?例子如下: 性别特征:["男","女"] 祖国特征:["中国","美国,"法国"] 运动特征:["足球"
阅读全文
摘要:Ubuntu配置Nginx负载均衡 假设现在有3台机器: A:192.168.1.100 B:192.168.1.101 C:192.168.1.102 假设现在B,C机器上已部署了Web服务器,访问192.168.1.101:9999和192.168.1.102:9999均可以获得服务器返回的数据
阅读全文
摘要:什么情况下需要布隆过滤器? 先来看几个比较常见的例子 字处理软件中,需要检查一个英语单词是否拼写正确 在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上 在网络爬虫里,一个网址是否被访问过 yahoo, gmail等邮箱垃圾邮件过滤功能 这几个例子有一个共同的特点: 如何判断一个元素是否存在一个集合中
阅读全文
摘要:转。。https://www.cnblogs.com/bigdatalearnshare/p/13909100.html 在说redis中的哈希(准确来说是一致性哈希)问题之前,先来看一个问题:为什么在分布式集群中一致性哈希会得到大量应用? 在一个分布式系统中,要将数据存储到具体某个节点,或者将来自
阅读全文
摘要:Hash算法 要说一致性Hash算法,我们先从基本的Hash算法说起。 Hash算法,我们都是熟悉的,它是一种摘要算法,即根据原有的内容产生一个简短的摘要结果。 摘要结果跟原内容是相关的,原内容的改变(极大概率)会导致摘要内容的改变。 这里说的极大概率会改变是因为这取决于该Hash算法的输出空间的大
阅读全文
摘要:前言 前面学习了django自带的admin后台管理感觉页面不美观,网上的大神优化了一版后台管理xadmin,并且开源了,在github开源下载到源码。 django 2.1.2 xadmin 2.0 python 3.6 xadmin安装 xadmin在github的源码地址https://git
阅读全文
摘要:MySQL自带的数据库 先来看MySQL中自带的库有哪些: 各库解释如下: information_schema,虚拟库,不占用磁盘空间,存储的是数据库启动后的一些参数,如用户表信息、列信息、权限信息、字符信息等。 performance_schema, MySQL 5.5开始新增一个数据库,主要用
阅读全文
摘要:连接 MySQL提供了两种连接方式: TCP/IP方式(本地、远程): mysql -uroot -p123 -h 10.0.0.1 -P330 Socket方式(仅本地) mysql -uroot -p123 -S /tmp/mysql.sock 当我们本地连接MySQL的时候,默认用的是sock
阅读全文
摘要:CURD之C 让我们将镜头切换到北宋时期某位官人的府邸,府里男主人是: PUT zhifou/doc/1 { "name":"顾老二", "age":30, "from": "gu", "desc": "皮肤黑、武器长、性格直", "tags": ["黑", "长", "直"] } 他明处貌似还有俩
阅读全文
摘要:前言 简单的没挑战,来点复杂的,比如查看来自顾家的都有哪些人怎么查呢?elasticsearch提供两种查询方式: 查询字符串(query string),简单查询,就像是像传递URL参数一样去传递查询语句,被称为简单搜索或查询字符串(query string)搜索。 另外一种是通过DSL语句来进行
阅读全文
摘要:前言 现在,让我们启动一个节点和kibana。接下来的一切操作都在kibana中Dev Tools下的Console里完成。 创建一篇文档 现在,我们试图将小黑的小姨妈的个人信息录入elasticsearch。我们只要输入: PUT t1/doc/1 { "name": "小黑的小姨妈", "age
阅读全文
摘要:本文是对ElasticSearch组件初步学习的一个知识总结,包括如下章节的内容: 概述 快速上手 逻辑概念 用户接口 关于ELKB 预备知识: 1、本文对ElasticSerach的介绍会涉及与关系数据库的对比,为了更好地学习,可提前对关系数据库的基本概念有所了解。 2、ElasticSerach
阅读全文
摘要:ELK起源 简介 日常工作中会面临很多问题,处理问题时候。怎么解决问题? 通过工作经验,迅速判断问题出在哪。 通过日志 系统日志:/var/log 目录下的问题的文件 程序日志: 代码日志(项目代码输出的日志) 服务应用日志 nginx、HAproxy、lvs tomcat、php-fpm redi
阅读全文
摘要:elasticsearch(集群)中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型下又包含多个文档(行),每个文档中又包含多个字段(列)。 物理设计,在elasticsearch后台是如何处理这些数据的呢?elasticsearch将每个索引划分为多个分片,每份分片又可以在集
阅读全文
摘要:11 找到两个array中的通用项,并保存在新的array中 例如:输入a = np.array([1,2,3,2,3,4,3,4,5,6]),b = np.array([7,2,10,2,7,4,9,4,9,8])输出array([2, 4]) a = np.array([1,2,3,2,3,4,
阅读全文
摘要:6 替换array中的元素,并赋值给新的array 例如: 输入arr = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 输出out为array([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1]) arr为array([0, 1, 2, 3
阅读全文
摘要:1 如何查看np版本 import numpy as np print(np.__version__) 2 如何创建一维数据array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) arr = np.arange(0,10) arr 输出: array([0, 1, 2, 3, 4
阅读全文
摘要:操作系统到底在干啥? 如果由笔者来概括,操作系统大概做了两件事情,计算与IO,任何具体数学计算或者逻辑判断,或者业务逻辑都是计算,而网络交互,磁盘交互,人机之间的交互都是IO。 高并发的瓶颈在哪? 大多数时候在IO上面。注意,这里说得是大多数,不是说绝对。 因为大多数时候业务本质上都是从数据库或者其
阅读全文
摘要:DataFrame中的apply方法 import pandas as pd # 生成DF数据 gfg_string = 'geeksforgeeks' gfg_list = 5 * [pd.Series(list(gfg_string))] gfg_df = pd.DataFrame(data =
阅读全文
摘要:把DataFrame中'Min.Price', 'Max.Price'缺失的值用该列的均值填充 现有数据如下: df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/Cars93_miss.csv')
阅读全文
摘要:查询df中指定行与列的数据 现有数据如下: df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/Cars93_miss.csv') 查询最贵的价格,解决方式如下: np.max(df.Price) 输
阅读全文
摘要:df = pd.read_csv('https://raw.githubusercontent.com/selva86/datasets/master/BostonHousing.csv', chunksize=50) df2 = pd.DataFrame() for chunk in df: df
阅读全文
摘要:现有Series如下 np_array = np.random.randint(1, 10, 35) 要求转化为7行5列的DataFrame如下图: 解决办法: ser = pd.Series(np_array) df = pd.DataFrame(ser.values.reshape(7,5))
阅读全文
摘要:求两个Series的相关性 现有两个Series如下: import pandas as pd s1 = pd.Series([.2, .0, .6, .2]) s2 = pd.Series([.3, .6, .0, .1]) 求两个Series的皮尔逊系数 解决方法就是把Series当成是一个向量
阅读全文
摘要:按照指定要求前向填充元素(ffill forward fill) 构建数据如下: import pandas as pd df=pd.DataFrame({"A":[5,3,None,4], "B":[None,2,4,3], "C":[4,3,8,5], "D":[5,4,2,None]}) df
阅读全文
摘要:恢复内容开始 从Series的字符串中过滤出email地址 现有Series如下: emails = pd.Series(['buying books at amazom.com', 'rameses@egypt.com', 'matt@t.co', 'narendra@modi.com']) 解决
阅读全文
摘要:恢复内容开始 计算两个Series之间的均方误差 现有两个Series如下: truth = pd.Series(range(10)) pred = pd.Series(range(10)) + np.random.random(10) 计算两个Series之间的均方误差解决办法: np.mean(
阅读全文
摘要:11 把数据进行cut操作 现有数据ages如下 ages = [20, 22, 25, 27, 21, 23, 37, 31, 61, 45, 41, 32, 101] 想按照[(18, 25] < (25, 35] < (35, 60] < (60, 100]]把该数据进行Categories
阅读全文
摘要:6 取出Series 1中独有的数据 现有两个Series, ser1和ser2 如下 ser1 = pd.Series([1, 2, 3, 4, 5]) ser2 = pd.Series([4, 5, 6, 7, 8]) 取出在ser1中出现,但不在ser2中出现的1,2,3出来 解决方法: se
阅读全文
摘要:1 查看pandas的版本 import numpy as np import pandas as pd print(pd.__version__) 0.24.1 2 如何通过list,numpy array, dict创建series 现有list, numpy array, dict如下: im
阅读全文