- 博客(30)
- 收藏
- 关注
原创 如果你也用“pandas.read_csv”处理文本,这几个参数你应该掌握
我相信使用pandas的同学们,基本都会用到这个方法:read_csv()。这个方法确实简单易用,但是内置参数特别多,所以今天就分享下这个方法的一些使用技巧。文章目录基础使用参数详解filepath_or_buffersep/delimiterheaderusecolsdtypenrowsparse_datesna_values基础使用只需要给一个文件路径即可df = pandas.read_csv("filepath")接下来开始详细介绍几个比较有用的参数参数详解filepath_or.
2020-10-06 11:45:44 588
原创 面试官:Flask框架中的上下文机制是如何实现的?有什么作用?
本文基于python的Flask框架,分享其上下文机制的实现和原理。在Flask中,上下文机制是最核心的概念之一。不仅仅是因为通过上下文机制实现了客户端和服务器交互简单化的目的,更为了flask的生态发展,可插拔式的组件开发提供了很好的支持。文章目录01 什么是Flask中的上下文?生活中的上下文模型专业化的解释02 flask中的上下文变量有哪些03 源码解读flask中的上下文变量代理类偏函数`LocalProxy.__getattr__`方法304 应用上下文作用和意义官方文档我的理解01 什.
2020-08-31 19:50:20 847 1
原创 flask_python_web框架源码阅读(3)_flask服务器是如何响应客户端请求的
本文主要基于python的web微型框架Flask,分享服务器如何响应用户的请求(其实django的响应也差不多是这个样子),生活原型入门,源码辅助,希望你能在面试官面前侃侃而谈。如果有任何有问题的地方,烦请指出,谢谢。
2020-08-28 15:22:58 414
原创 如何使用python进行正确的四舍五入?这个坑有点大
本文主要分享基于python的数据分析三方库pandas,numpy的一次爬坑经历,发现并分析了python语言对于浮点数精度处理不准确的问题,并在最后给出合理的解决方案。如果你也在用python处理数据,建议看一下,毕竟0.1的误差都可能造成比较大的影响文章目录01 发现问题02 开始排查03 分析问题04 解决问题01 发现问题早上到了公司,领导发了几个文件过来,说这两天测试环境跑出来的数据,与实际情况有所出入,看看哪出的问题,尽快解决···02 开始排查先对比数据,发现并不是所有的数.
2020-08-21 14:42:19 1764 1
原创 当年一道python面试题的失利让我错过了心仪的公司,希望你不会这样
本文主要分享关于python被称呼为假多线程的原因,以及GIL锁的原理和多线程锁的意义今天翻手机备忘录的时候,突然发现了很久之前的一次面试记录,其中的一道面试题,真是让我记忆犹新!因为当年,这道题,直接给我问懵逼了···对话如下面试官问我:你知道多线程吧,说说看?我说:当然知道,balabalabala·····面试官问:嗯,挺好,再解释下你刚才说到那个GIL锁是怎么回事?我回答:balabalabala···面试官问:那我问一下,既然已经有了GIL锁控制每个进程只有一个线程执行了,为什么.
2020-08-19 17:39:01 800
原创 基于python,pandas,pymysql 将数据批量高效写入mysql数据库(保证可以用的那种)
编程界的小学生一枚,主要使用语言为python,平时要和数据打交道,还有erp系统相关以及web开发等等,有时间就会分享下工作中遇到的那点事,包括那些让我焦虑的问题,包括我自己总结的小技巧,那些程序优化重构的实现,还有可能包括程序性能优化,以及源码的阅读等等···在荆棘的道路上逆风前行本文基于python, pandas, pymysql实现了向数据库中批量插入数据的脚本,一方面提供给被网上很多瞎转载的答案给坑蒙了的人(因为我也是),一方面自己也做个笔记,以后方便查阅文章目录需求原因版本库信息逻辑梳.
2020-08-11 16:13:27 8312 1
原创 一行代码的调优让我的程序性能提高了至少50%
本文主要涉及python基于pandas的大数据项目的一次调优,调优的过程很难受,调优的结果很开心,运行时间从22分钟降低到了7分钟左右。涉及多线程,代码重构,以及语法调优。时间紧张的话,结论在最后。文章目录问题的发现以及初步调优发现问题分析问题解决问题总结问题的发现以及初步调优由于项目的技术架构是基于aws的lambda服务进行无限并发处理,而每个lambda进程要求程序整体运行不能超过15分钟。但是通过测试后发现,竟然跑完要22分钟左右,肯定不行,所以就开始了如下调优的过程。先看下项目的优.
2020-08-09 00:06:57 236
原创 flask_python_web框架源码阅读(2)路由映射是如何生成的
接着上一篇flask是如何启动的,这篇主要讲路由映射是何时生成的,以及生成过程是如何的,如果有写的不太准确的地方,麻烦帮忙指正,谢谢,希望大家一起进步。文章目录简单示例源码部分app.route源码阅读装饰器使用相关app.add_url_rule源码Map.add源码Rule.bind源码Rule.compile源码Rule._compile_builder源码Tips增加对路由理解的辅助源码简单示例我们都知道,flask的路由匹配是基于python特有语法装饰器实现的,如下代码所示from fl
2020-08-01 23:27:36 461
原创 flask_python_web框架源码阅读(1)
引言还是老样子,想研究源码,从最新版看没有太大的意义,最好是从第一个版本v0.1开始看起,因为东西最少,但是涉及到的整个框架的设计思路是基本上不会变的···文章目录一些概念flaskwerkzeugwsgiweb server /web application简单了解werkzeug开始了解flask快速开发一个hello,world应用源码分析实例化过程run源码阅读run_simple源码阅读serve_forever阅读源码本回合总结一些概念flask这是对flask的最初始的描述A mi
2020-07-28 09:19:50 454
原创 leetcode专项刷题_动态规划(1)_判断子序列/打家劫舍/买卖股票的最佳时机
文章目录判断子序列题目描述代码实现打家劫舍题目描述代码实现买卖股票的最佳时机题目描述代码实现判断子序列题目描述给定字符串 s 和 t ,判断 s 是否为 t 的子序列。你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不是)# s = "abc
2020-07-26 11:25:42 303
原创 python_requests源码阅读(3)_v0.4.0
requestsv0.4.0先看下此次版本变动的主要内容,主要在于优化和模块解耦,以及发现的小bug的修复History-------0.4.0 (2011-05-15)++++++++++++++++++* Response.history: list of redirected responses* Case-Insensitive Header Dictionaries!* Unicode URLs0.3.4 (2011-05-14)++++++++++++++++++
2020-07-25 18:57:41 186
原创 leetcode专项刷题_数组(3)_子数组最大平均数 I/最大子序和/数组的度
文章目录子数组最大平均数 I问题描述代码实现最大子序和题目描述代码实现数组的度题目描述代码实现子数组最大平均数 I问题描述给定 n 个整数,找出平均数最大且长度为 k 的连续子数组,并输出该最大平均数输入: [1,12,-5,-6,50,3], k = 4输出: 12.75解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75代码实现# 暴力法,最容易理解# 思路: 截取每一个长度为k的nums数据,求和放到新的列表中,返回最大值,求解class Solution
2020-07-16 21:19:35 531
原创 leetcode专项刷题_数组(2)_两数之和/访问所有点的最小时间/统计有序矩阵中的负数/种花问题
文章目录两数之和 II - 输入有序数组题目解释代码实现访问所有点的最小时间题目解释代码实现统计有序矩阵中的负数题目解释代码实现种花问题题目解释代码实现检查整数及其两倍数是否存在题目解释实现代码两数之和 II - 输入有序数组题目解释给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2代码实现# numbers = [2, 7, 11, 15], target = 9 &
2020-07-15 13:18:13 219
原创 python_requests源码阅读(2)_v0.3.0
v0.2.1增加了对于文件上传的支持(用的是别人的轮子,先是支持post/然后是put)elif self.method == 'POST': if (not self.sent) or anyway: # 用别人的轮子,直接拿过来调用,数据要以MIME 格式分块,生成随机boundary标记头和尾 if self.files: register_openers() datagen, headers = multipart_en
2020-07-14 21:53:59 343
原创 leetcode专项刷题_数组(1)_0~n-1中缺失的数字/高度检查器/最长连续递增序列/拼写单词/元素替换
感觉要学,要看的东西太多了。但是这其中,算法也一定是核心中的核心,于是决定有时间就刷刷题,研究了下,个人觉得照题的类型来可能效果要好些,这样可能对于某一种的题型就上手更快。奔跑吧,少年~~文章目录0~n-1中缺失的数字题目描述代码实现高度检查器题目描述代码实现最长连续递增序列题目描述代码实现拼写单词题目描述代码实现将每个元素替换为右侧最大元素题目描述代码实现0~n-1中缺失的数字题目描述一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个
2020-07-13 20:20:57 367
原创 递归算法及相关(1)_python实现_单链表反转/字符串反转/杨辉三角等经典算法
递归是非常常见的一种算法,非常经典,我估计大部分人知道递归,也能看的懂递归,但在实际运用中,却不知道如何使用,有时候还容易被递归给搞晕(尤其是来回的出栈入栈)。说实话,得练!这里,我还是想写一篇文章,谈谈我的一些经验,或许,能够给你带来一些帮助。文章目录什么是递归递归三定律递归调用的原理递归应用斐波那契数列进制转换字符串反转单链表成对的交换位置将单链表反转杨辉三角I杨辉三角II什么是递归递归是一种解决问题的方法,将问题分解成规模更小的问题,不断的调用自身,解决小问题,直至问题不可再分,递归一般都是从
2020-07-09 22:23:08 725
原创 python_requests源码阅读(1)_v0.2.0
文章目录写在前面拉取版本源码结构目录如下具体文件分析readme文件history文件core文件get函数get函数源码get函数解读Request类send方法源码send方法解读__setattr__方法解读_Request类写在前面requests库是公认的python最好上手的http请求库,基于urllib库重新造轮子,用起来非常顺手。而且,这也是传说中最pythonic的代码,毕竟作者是公认的python界前三位的大神,先来看看初始版本(0.2.0版本)拉取版本源码# 有些人不知道如何
2020-07-05 01:58:11 568
原创 requests基操/爬取调用百度翻译
因为最近使用pandas 和numpy,所以就研究下requests库,毕竟这是目前python最流行的http请求库,也是最符合pythonic的库,有时间也准备看源码学习下,不过前一阵看到一个httpx第三方库,支持了更加丰富的API调用,比requests库扩展了,还没有细看,后面也会看下,这里只是简单的记录下requests库看的基础东西,(requests是基于urllib去做的,所以很多的底层也要先研究下urllib的实现)
2020-06-28 23:39:49 938
原创 使用pandas一些技巧归纳(4)
文章目录grouby聚合对df不同的列进行不同求值对数据集合按照自定义分类进行聚合操作对分类标准的多个数据合并到一行将分组后的数据列保持原列名sort_values相关同时对几列数据依次排序操作补充(split,列数据类型转换)split操作列属性转换出错grouby聚合对df不同的列进行不同求值有时候面临的需求是对不同列分别作不同的聚合操作,比如聚合之后的数据,某一列需要做求和,某一列需要做取中值,这种情况需要用agg函数,可以通过传入元组(列名,要聚合的函数名)的方式重命名聚合之后列的名字#
2020-06-26 22:33:17 259
原创 使用pandas遇到的一些坑及解决方案(3)
本次内容以及坑主要涉及四个方面:apply函数使用,groupby分组取每组前几个值,df遍历,筛选集合,分享一下,如果有可以优化的地方,不吝赐教,谢谢。文章目录apply函数需求描述示例代码取反筛选集合需求描述示例代码取分组后每组的前几个数据需求描述示例代码遍历操作iterrows解释及坑示例代码values()示例代码apply函数需求描述个人觉得dataframe数据处理用apply函数都很好用,不论是lambda函数还是自定义函数,但是需要注意如果用lambda函数,那么条件要用()括起
2020-06-21 01:11:02 1707
原创 使用pandas遇到的一些坑及解决方案(2)
文章目录csv文件读和写读文件的坑不指定数据类型的坑指定数据类型报错的坑写文件的坑需求描述代码实现np.round(0.5) 等于0的坑需求描述及坑解决方案聚合需要把某一列的值以“,”汇总代码实现csv文件读和写读文件的坑建议读取csv文件,最好带有列的类型属性,pandas遇到这种"0100"的,会自动变更为int类型,如果后面需要做匹配神马的就容易出现问题不指定数据类型的坑import pandas as pd# 并不是所有的列都需要指定属性,一般来讲字符串类型的最好指定一下, 时间类型需要
2020-06-12 23:41:43 1792
原创 使用pandas遇到的一些坑及解决方案(1)
文章目录nan值定位的正确方法df.isnull()真没啥用df[df.isnull().values==True] 很舒服日期加减问题的正确写法分组聚合不改变列名生成新表最近在频繁的使用pandas处理数据问题,所以把遇到的问题慢慢整理一下,给自己个交代,另外如果有处理方法可以优化的地方,也希望小伙伴们可以指出来,谢谢。nan值定位的正确方法df.isnull()真没啥用df.isnull()这个命令,是将数据集的nan值显示为1,不为nan值的显示为0说实话,df.isnull() 在
2020-06-10 00:51:18 4154 1
原创 通俗易懂的数据结构(5)_python实现_哈希表(散列表)
文章目录概念散列值散列表散列函数完美散列函数概念难点近似完美散列函数近似完美函数举例优势散列函数的要求散列函数的应用散列性质冲突以及解决冲突代码概念散列值把任意长度的输入,通过散列函数,变换成固定长度字符串的的输出,该输出就是散列值散列表散列表也称为哈希表,也是一种数据结构,它是由数据项的值确定数据存放的位置。散列表中的每一个存储位置,称之为槽,用来保存数据项(value),每个槽应该有唯一的标记(key)我觉得可以理解为这个数据结构存储的是一种映射关系,记录一个存储位置以及这个位置所存的数据,
2020-06-06 23:28:40 615
原创 几种基础算法的理解以及python实现,冒泡/二分/选择排序/插入排序/归并排序/快速排序
文章目录相关术语稳定性时间复杂度和稳定性一览查找数据(python实现)暴力查找二分查找排序(python实现)冒泡排序选择排序(O(n²))插入排序归并排序快速排序相关术语稳定性概念:如果值相同的元素在排序前后保证着排序前的相对位置,则称为稳定的排序,反之则为不稳定排序时间复杂度和稳定性一览这里只说平均复杂度冒泡 - O(n²) - 稳定排序插入 - O(n²) - 稳定排序选择 - O(n²) - 稳定排序快速 - O(nlog2(n)) - 不稳定排序归并 - O(nlog2(n
2020-05-29 23:14:23 417
原创 通俗易懂的数据结构(4)_python实现_队列/循环队列/优先队列
文章目录普通队列概念实现代码循环队列概念为什么要创造循环队列循环队列特点实现代码优先队列概念原理实现代码普通队列概念队列是一种有次序的数据集合,表现为向队列中添加数据时,永远在尾端添加,而移除数据则永远从队首删除。这里的队尾和队首都是指逻辑上的,比如用python的列表构造队列结构,那么你既可以将list[0]位置当作队首,也可以将list[last_position]位置当作队首,完全取决于你自己对于数据的把控,时间复杂度的取优等方面的考虑实现代码# 利用内置数据类型list构建队列数据结
2020-05-22 22:04:51 335
原创 Git知识点梳理及基础命令_2(你所要需要了解的内容这两篇就够了)
文章目录Gitk命令强大的Rebase(变基)命令对本地commit 的msg做变更对最近一次的提交的msg做变更对之前的commit的msg做修改合并版本合并本地的几个相邻的提交记录合并几个不相邻的commit到一个commit(和上个差不多)rebase其他相关问题rebase取消rebase编辑器更改为VimGit使用中的一些问题Git pull/clone 报错SSL相关每次pull都需要输入账号和密码stash命令(工作区修改内容暂存)**git stash **git stash popgit
2020-05-17 00:00:18 879
原创 通俗易懂的数据结构(3)_python实现_树结构
文章目录概念术语树结构特点生活中的例子二叉树概念特点特殊二叉树的类型平衡二叉树满二叉树完全二叉树满二叉树和完全二叉树的区别二叉树的特点二叉树的实现(基于python)嵌套列表法结点链表法二叉树的遍历(解释及代码)前序遍历中序遍历后序遍历层序遍历二叉树的常见应用堆(heap)二叉搜索树(BTS)表达式树(讲解及代码)概念树是n个有限结点的有限集合。n=0为空树。在任意一课非空树中:有且仅有一个根结点,当n>1时,其余结点可分为m个互不相交的有限集,每个集合本身又是一棵树,称为根的子树术语边/
2020-05-16 20:55:44 822 1
原创 Git知识点梳理及基础命令_1(你所要需要了解的内容这两篇就够了)
前言不吹不擂,基本上常用的Git的术语和相关基础命令的操作,都整理在此篇文章中了。一方面巩固自己的知识体系,另一方面,也整理给需要接触并使用Git的新手们,后面应该还有一章关于Git使用的补充,如果错误,烦请指正,谢谢。文章目录概念相关Git概念Git概念的理解GitHubGit三大区域分支Git准备安装Git设置Git的user信息三个不同的作用域,默认为local显示git 本机的配置配置优先级基本命令初始化仓库创建本地版本库克隆远端版本库管理分支理解查看分支创建本地新分支(基于当前所在分支)拉取最
2020-05-12 00:16:47 352 3
原创 通俗易懂的数据结构(2)_python实现_线性结构
文章目录线性结构的概念三种主要线性数据结构类型列表-LIST顺序存储(数组实现)数组两大特点你所要了解的数组操作增加数组大小减小数组的大小数组中插入一项数组中删除一项时间复杂度链式存储(链表实现)特点构建节点类链表操作(代码实现)遍历搜索目标值替换第i项位置的数据在任意索引位置插入节点在任意位置删除节点时间复杂度列表接口栈-STACK特点生活中的例子(加深理解)经典应用部分应用代码实现队列-QUEUE特点生活中的例子(加深理解)经典应用部分应用代码实现约瑟夫/热土豆理论生产者消费者模型线性结构的概念
2020-05-11 09:11:06 844
原创 通俗易懂的数据结构(1)_python实现_数据结构基础及算法基础
文章目录数据结构基础概念相关抽象数据的理解两种视角,两种结构数据结构的意义生活中的逻辑接口和物理接口(加深理解)算法基础概念相关算法的意义算法特征好算法的基本要求算法效率的考量大O表示法概念及理解计算方法常用的时间复杂度时间复杂度排序数据结构基础概念相关数据结构就是相互之间存在一种或多种特定关系的数据元素的集合举例来说:python自带的基本数据类型list(),由于底层结构是数组,所以...
2020-05-05 20:40:53 321
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人