Python编程手册
文章平均质量分 65
兔子爱读书
不忘初心,记录成长
展开
-
【Python】pandas使用指南(持续更新...)
pandas读取excel指定列存为csvimport pandas as pdexcel_file = 'a.xlsx'csv_file = 'a.csv'# 读取Excel指定列,不读取前4行的备注及标题信息df = pd.read_excel(excel_file, usecols=[0, 3], header=0)# 自定义标题和索引df.columns = ['...原创 2019-05-08 14:07:49 · 1934 阅读 · 0 评论 -
【Python】实时日志打印、
计时 import timeT0 = time.time()T1 = time.time()print("Run time %s min, %s h" % ((T1 - T0) / 60, (T1 - T0) / 3600)) 实时日志打印 定义一个类:class Logger(object): def __init__(self, log_path="default.log"): import sys self.terminal = ..原创 2021-04-03 19:28:03 · 617 阅读 · 0 评论 -
PYthon:super与类的继承
两种继承方式:Class SubClass(FartherClass):子类可以任意调用父类的成员变量、成员函数,适合单继承,即只继承一个父类。Super:适合多继承统一用一种,不要交叉用。class FooParent(object): def __init__(self): self.parent = 'I\'m the pare原创 2024-02-23 22:48:25 · 225 阅读 · 1 评论 -
python正则典型例子
1.str ="abcdefg123213qwe",匹配以abc开头,以qwe结尾,要怎样写呢?正解:m = re.match('^abc(.*?)qwe$','abcdefg123213qwe')>>> m = re.match('^abc(.*?)qwe$','abcdefg123213qwe')>>> m.group()'abcdefg123213qwe'>>> m.原创 2024-02-23 22:47:21 · 308 阅读 · 1 评论 -
【Python】在python中使用xlrd和xlwt读写Excel
您看到的问题(no module named 'pystan')是因为最新的pystan(> = 3.0)进行了不向后兼容的更改,包括它现在具有不同的导入名称。见#1856。您需要安装 pystan 2.19.1.1 才能正常工作,然后重新安装 fbprophet。pip remove fbprophetpip install pystan==2.19.1.1pip install fbprophet......转载 2022-06-14 14:54:11 · 1427 阅读 · 1 评论 -
【Python】 Pandas 遍历DataFrame的正确姿势 速度提升一万倍
原文:https://zhuanlan.zhihu.com/p/97269320最近做科研时经常需要遍历整个DataFrame,进行各种列操作,例如把某列的值全部转成pd.Timestamp格式或者将某两列的值进行element-wise运算之类的。大数据的数据量随便都是百万条起跳,如果只用for循环慢慢撸,不仅浪费时间也没效率。在一番Google和摸索后我找到了遍历DataFrame的至少8种方式,其中最快的和最慢的可以相差12000倍!本文以相加和相乘两种操作为例,测试8种方法的运行速度,并附上示范转载 2021-09-26 11:29:13 · 4502 阅读 · 0 评论 -
【Python】去除所有中英文标点
string.punctuation支持导入所有英文标点:!"#$%&’()*+,-./:;<=>?@[]^_`{|}~zhon.hanzi.punctuation支持导入所有中文标点:"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、 、〃〈〉《》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏﹑﹔·!?。。import refrom string import punctuation as punctuation_en from原创 2021-08-21 17:25:05 · 1407 阅读 · 0 评论 -
【Python】约定函数的输入输出类型
输入类型约定用冒号:element: string输出类型约定用箭头:-> bool案例:def func(element: str) -> bool: # 约定输入类型为int,输出类型为bool print(element) return bool(element)print(func('abc'))Python常见数据类型:数字类型:int、float字符串类型:str、unicode布尔型:bool其他:list、dict、tupl.原创 2021-08-03 07:27:53 · 2584 阅读 · 0 评论 -
【Pandas】Pandas处理Csv和Excel数据详解
作者:Zarten知乎专栏:python数据分析与挖掘深入详解知乎ID:Zarten简介: 互联网一线工作者,尊重原创并欢迎评论留言指出不足之处,也希望多些关注和点赞是给作者最好的鼓励 !概述通过pandas处理数据时,数据从何而来呢?基本都是从外部获取的,如纯文本文件、excel、数据库、网页等,所以从外部导入数据的重要性不言而喻。这篇文章将介绍导入csv和excel文件为Pandas的DataFrame对象。导入CSV文件csv文件类型实际是文本文件,由于文本文件没有固定的格式.转载 2021-07-31 16:55:24 · 1221 阅读 · 0 评论 -
【Python】构建关键词共现矩阵完整版
有个网友写了一个帖子叫做:python构建关键词共现矩阵,里面构造了完整的代码框架,可测试,有两个版本(numpy版和list版可用)。优点是完整可测试,缺点是速度较慢。后来有网友改进了这个代码:python构建关键词共现矩阵速度优化,里面对代码进行了优化,优点是能把几个小时能优化到3分钟,缺点是只贴出一部分代码。我综合了这两个人的代码,构造出一个终版可用的版本。优点有:无需导入原始依赖的reader函数、速度快、可运行、去除了空关键词。代码如下:# -*- coding: utf-8翻译 2021-07-15 19:26:33 · 8533 阅读 · 7 评论 -
【Python】能打印日志的语法装饰器
定义一个打印日志的代码:def log(func): def wrapper(*args, **kwargs): now_time = str(time.strftime('%Y-%m-%d %X', time.localtime())) print('%s %s called' % (now_time, func.__name__)) print('Comments:%s' % func.__doc__) print('%s r原创 2021-07-15 12:02:21 · 471 阅读 · 0 评论 -
【Python】ReportLab生成pdf
如何表示空格:用‘\0‘来表示空格reportlab实现横线style:原创 2021-05-31 16:36:08 · 347 阅读 · 0 评论 -
【技术】python 爬虫一招解决SSl 报错SSLError
摘要用python写爬虫的时候没我们经常遇到https认证的网站,采用常用模块requests模块,我们一般在请求中将verify设置成假,免证书验证,但是这些都是理想状态,https请求很容易报错,一旦报错就难以解决。举个列子编写一个简单的列子,我们的目标对象是一个https的网站,它的编码是gb2312,按照常用手法,我们设置免验证的方法,按照我们正常的逻辑,肯定是能成功,但是这里却不符合逻辑简单爬虫案例下面开始运行代码:异常报错报错的信息,无非是ssl的各种报错,我这里是转载 2021-03-17 22:22:30 · 8046 阅读 · 1 评论 -
【经验】交付代码注意事项
手动设置的部分,一律用input()函数不要用写入代码的形式!即使当时客户知道了,后续面对密密麻麻的代码,也无从改起。注意提醒用户,用英文逗号作为分隔符。用readlines()读取文件,必须处理多余的空行第一是要用 if语句 判断空行,客户很容易在文件末尾输入很多空行。第二是不能直接在原来的列表做修改,要新建一个列表,一个一个append。with open(file, "r", encoding="utf-8") as fd: lis = fd.readlines() ne原创 2021-01-24 00:05:36 · 1997 阅读 · 0 评论 -
【Python】Python中的图的邻接矩阵转化为字典格式
networkx,adjacency_matrix()函数print(A) 是按节点对的形式显示,数据类型为<class 'scipy.sparse.csr.csr_matrix'>print(A.todense()) 按矩阵形式显示,数据类型为array现在需要将邻接矩阵转化为字典格式,用:nx.to_dict_of_dicts(G)输出:{0: {1: {'weight': 1}}, 1: {0: {'weight': 1}}}...原创 2020-11-10 12:15:49 · 1709 阅读 · 0 评论 -
【Python】YAML版本导致的读取错误LoadWarning: calling yaml.load() without Loader=... is deprecated
原因是新版本yaml弃用了原版本的用法。解决:yaml.load(list, Loader=yaml.FullLoader)原理:原创 2020-09-05 20:37:57 · 1962 阅读 · 1 评论 -
【Python】for循环中修改索引变量只对当前循环体有效
(1)歪打正着偶然在for循环中用了同一个计数变量,结果却歪打正着。原因是操作放在子计数变量之前。如下:>>> for i in range(20):... print(i)... for i in range(5):... i+=100...012345678910111213141516171819这是因为在python中,一个for循环在每次迭代开始时将list / iterable中的下一个元原创 2020-08-16 11:41:54 · 1766 阅读 · 0 评论 -
【Python】数据处理神器 savetxt() 和 loadtxt()
还在为存取数据而烦恼吗? numpy帮你解决这个困扰。(1)用savetxt() 函数将数据存储到文件import numpy as npdata = np.ones((3,4))np.savetxt("./data.csv")文件保存成功:(2)用 loadtxt函数读取文件import numpy as npdata = np.loadtxt("./data.csv")print(data)数据读取成功:利器啊,利器!...原创 2020-07-31 23:27:55 · 10020 阅读 · 0 评论 -
【Python】networkx关于网络分析的几个指标
(1)读取网络def load_graph(file_path): with open(file_path, "r") as fd: data = fd.readlines() # 分离出标题和数据行,如果没有标题,用#号注释掉下面这两行) title = data[0] data = data[1:] # 从数据中提取边,建立一个空的有向图G edges = [it.strip().strip(",").split(",")[:2] f原创 2020-07-31 14:07:46 · 17369 阅读 · 7 评论 -
【Python】LDA使用LatentDirichletAll报错TypeError: __init__() got an unexpected keyword argument ‘n_topics‘
报错代码:LatentDirichletAllocation(batch_size=128, doc_topic_prior=None, evaluate_every=-1, learning_decay=0.7, learning_method='online', learning_offset=50.0, max_doc_update_iter=100, max_iter=50, mean_change_tol=0.00原创 2020-07-28 17:10:56 · 5075 阅读 · 3 评论 -
【Python】unicode编码和bytes编码不能混用
报错:出现’ascii’ codec can’t decode byte 0xef in position 0:ordinal not in range(128)的错误。1、unicode和utf-8的区别。unicode指的是万国码,是一种“字码表”。而utf-8是这种字码表储存的编码方法。unicode不一定要由utf-8这种方式编成bytecode储存,也可以使用utf-16,utf-7等其他方式。目前大多都以utf-8的方式来变成bytecode。2、Python中字符串类型分..转载 2020-07-24 13:48:28 · 955 阅读 · 0 评论 -
【Tensorflow】anaconda3配置tensorflow各种报错的解决
1. 安装tensorflow报错tensorflow 2.X Failed to load the native TensorFlow runtime 问题解决https://blog.csdn.net/roamer314/article/details/106461717备注:安装Microsoft Visual C++ downloads即可解决报错。2.keras报错File "C:\Anaconda3\lib\site-packages\keras\utils\gener...原创 2020-07-23 19:23:48 · 3106 阅读 · 0 评论 -
【Anaconda3】更新conda的方法
遇到一个报错:failed with initial frozen solve. Retrying with flexible solve.根据网上教程,先更新conda。在Anaconda prompt 输入conda update,提示:conda update --prefix C:\Anaconda3 anaconda按这条命令,更新conda环境。会更新非常多的包。更新完成后输入:conda update --all...原创 2020-07-23 16:34:34 · 7133 阅读 · 4 评论 -
【Python】解决报错“No module named ‘pandas.core.indexes‘”
当我尝试用yaml打开一个存储pandas表格的数据文件的时候,错误发生了。报错信息如下:cannot find module 'pandas.core.indexes.base' (No module named 'pandas.core.indexes')原因:生成数据文件的环境和打开的环境不一致。例如,使用pandas 0.18.1 生成文件,使用pandas 0.17.1.打开。解决(二选一):pip install --upgrade pandasconda upg原创 2020-07-16 16:12:37 · 9541 阅读 · 1 评论 -
【Python】安装包的时候提示缺少Microsoft Visual C++ 14.0的解决方案
最近安装一个python插件\python-Levenshtein-0.12.0,提示报错:error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": http://landinghub.visualstudio.com/visual-cpp-build-tools意思是系统里缺少Microsoft Visual C++ Build Tools。如果平时用vis.原创 2020-07-11 00:59:30 · 10893 阅读 · 0 评论 -
【Python】一个经常犯的时间统计错误
代码:import timeT0 = time.time()T1 = time.time()print("run time %s min" % (T1-T0)/60)报错:Traceback (most recent call last): File "predictNYC.py", line 249, in <module> print("run time %s min" % (T1-T0)/60)TypeError: unsupported operand...原创 2020-07-09 13:20:22 · 557 阅读 · 0 评论 -
【Python】把excel文件中的数据转化为字典格式存起来
【需求描述】例如下面表格为“值班表.xlsx”date name age 20200617 xiaowang 16 20200618 xiaozhang 18 现在需要把表格转化为字典存起来,方便读取。【步骤】(1)把“值班表.xlsx”另存为无格式的“值班表.csv”。默认是以逗号作为分隔符。(2)把第一列的日期作为关键字,构建空字典。例如,dic = {'20200617': {}, '20200618':{}}。(3)关键字对应的原创 2020-06-17 11:47:05 · 8415 阅读 · 1 评论 -
【Python】 集合内置函数
转自:https://www.cnblogs.com/Yanjy-OnlyOne/p/9919816.htmlPython集合内置函数操作大全 集合(s).方法名 等价符号 方法说明 s.issubset(t) s <= t 子集测试(允许不严格意义上的子集):s 中所有的元素都是 t 的成员 s < t 子集测试(严格意义.转载 2020-06-12 10:19:02 · 914 阅读 · 0 评论 -
【Python】列表内置函数
转自:https://www.cnblogs.com/jiangzuofenghua/p/11361384.html一、列表list一个队列,一个排列整齐的队伍,列表内的个体称作元素,由若干元素组成的列表,元素可以是任意对象(数字,字符串,对象,列表等) 列表内元素有顺序,可以使用索引,线性的数据结构,使用[]表示,列表是可变的 列表list、链表、queue、stack的差异二、列表list定义和初始化list() 定义一个空列表 list(iterable) 初始化一个可迭...转载 2020-06-12 10:04:07 · 885 阅读 · 0 评论 -
【Python】字符串内置函数
转载自:https://www.cnblogs.com/shenbuer/p/7833953.html1、字符串定义:它是一个有序的字符的集合,用于存储和表示基本的文本信息,‘’或“”或‘’‘ ’‘’中间包含的内容称之为字符串特性:1.只能存放一个值2.不可变3.按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序补充: 1.字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r'l\thf' 2.unicode转载 2020-06-12 09:56:50 · 514 阅读 · 0 评论 -
【Python】严格定义常量的方式
我们知道,常量的值不可改变。在Python中,如果想严格定义常量,可以通过类的方式实现。首先创建一个文件constant.py,把下面代码贴进去。代码:import sysclass _const: # 自定义异常处理 class ConstError(PermissionError): pass class ConstCaseError(ConstError): pass # 重写 __setattr__() 方法原创 2020-06-09 21:23:31 · 1324 阅读 · 0 评论 -
【Python】谨慎使用python进行矩阵计算
先抛出一个概念:左乘:设A为m*p的矩阵,B为p*n的矩阵,那么称m*n的矩阵C为矩阵A与B的乘积,记作C=AB,称为A左乘以B。 左乘是做行变换; 用对角阵左乘一个矩阵,就是用对角阵的对角元分别乘这个矩阵的对应各行;右乘:设A为m*p的矩阵,B为p*n的矩阵,那么度称m*n的矩阵C为矩阵A与B的乘积,记作版C=AB,称为B右乘以A。 ...原创 2020-04-22 20:42:30 · 1927 阅读 · 0 评论 -
【Python】给师弟的代码挑错
代码写得很规范,每个函数都用最标准的方式加了注释。但是使用时候有问题,费了一天改了一下,刚给了一个反馈:(1)没有打印日志,这样程序崩溃了,你也发现不了错误在哪。(通用问题)附:给你一个Logger类,在屏幕打印的同时可以写入到文本(2)没有实时记录结果,而是采用一次性dump的方式,导致大规模数据存储时候会因为中断前功尽弃。(通用问题)附:需要先把数据按行存储为txt,文件用...原创 2020-04-07 21:50:18 · 503 阅读 · 0 评论 -
【Python】Python3如何将汉字转化成反斜线u(\u)开头的字符串
汉字转u开头:'广州'.encode('unicode-escape')u开头转汉字:b'\u5f20\u4e09'.decode('unicode-escape')如果写 u'广州',在IDE打印出来是:'广州'。如果写'广州'.encode('utf-8'),在IDE打印出来是:b'\xe5\xb9\xbf\xe5\xb7\x9e'。都不是想要的结果!网上解...原创 2020-04-05 19:30:19 · 4761 阅读 · 1 评论 -
【Python】buffering=0报错的解决方法
报错代码:fw = open(filename, 'w', buffering=0)原因:buffering=0表示一个字符一个字符地写入,貌似不支持'w'的方式写字符串,只能用’wb‘的方法写入字节流。但是这存在一个问题,所有字符串都需要通过类似 b'\n'、bytes('\n')、’中文字符‘.encode('utf8')的方式转化为字节,转化过程中还可能报出其他错误。解...原创 2020-04-04 17:02:36 · 1192 阅读 · 0 评论 -
【Python】手动更改Anaconda的名字并修改系统设置
电脑的Anaconda不知为什么名字起为了Tools,修改为Anaconda后配置全部失效。1. 修改Tools为Anaconda2. 找到windows环境变量:我的电脑 -> 右键 -> 高级系统设置 -> 环境变量 -> path3. 将Anaconda安装目录下的 Scripts文件夹加入到环境变量。例如:C:\ProgramData\Anacon...原创 2020-03-10 20:21:58 · 2556 阅读 · 0 评论 -
web scraper 抓取分页数据和二级页面内容
转自:https://www.cnblogs.com/fengzheng/p/9328481.html如果是刚接触 web scraper 的,可以看第一篇文章。web scraper 是一款免费的,适用于普通用户(不需要专业 IT 技术的)的爬虫工具,可以方便的通过鼠标和简单配置获取你所想要数据。例如知乎回答列表、微博热门、微博评论、淘宝、天猫、亚马逊等电商网站商品信息、博客文章列表等...转载 2020-01-06 22:15:29 · 3003 阅读 · 0 评论 -
【Python】networkx读取gml图文件,有两个问题影响使用
【问题描述】networkx可直接读取gml文件:nx.read_gml(file),但是有两个问题影响使用:(1)一定要求gml文件中的节点有“label”键值对,不然会报错networkx.exception.NetworkXError: node #0 has no 'label' attribute(2)对节点的索引必须为label值。例如,G._node[label]...原创 2019-12-16 21:19:27 · 6046 阅读 · 3 评论 -
【Python】Python安装igraph包加载出错问题
igraph作为图计算和社交分析的常用包,在使用Python进行高级数据分析中是大家经常使用到的。但很多初学者在安装igraph时由于错误的安装方式,导致在Python中加载igraph包(from igraph import *)出现igraph包重复,请升级jgraph的错误信息。报错信息如下:“DeprecationWarning: To avoid name colli...转载 2019-12-16 11:23:36 · 4474 阅读 · 4 评论 -
【Python】networkx中如何获取图的邻接矩阵
需要调取networkx中graph实例的邻接矩阵,搜“network 邻接矩阵”没有迅速找到解决方案。我写一个吧。错误获取:networkx中有个adjacency_matrix()函数,得到的邻接表看形状虽然是N*N,但是打印出来会发现是这个格式: (0, 1) 1 (0, 30) 1 (0, 33) 1 (0, 99) 1第一列是源头...原创 2019-12-09 22:46:12 · 22337 阅读 · 7 评论