![](https://img-blog.csdnimg.cn/20191215224222814.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
★★★Python
python笔记
维格堂406小队
人天生都是软弱的,唯其软弱而犹能承担起苦难,才显出人的尊严。
展开
-
PythonNote042---pymysql使用
简单介绍pymysql的一些操作,增改删查。原创 2023-07-28 16:59:08 · 324 阅读 · 0 评论 -
PyPackage01---Pandas17_null、inf筛选
判断数据集是否存在null、inf,快速定位所在列、行,方便分析原因。原创 2023-07-26 16:52:22 · 458 阅读 · 0 评论 -
PyPackage01---Pandas16_apply返回多个值时的索引问题
pandas使用apply函数或者groupby函数返回多个值时,会出现返回多个索引的问题,介绍下解决方法。原创 2022-11-27 15:17:46 · 527 阅读 · 1 评论 -
PythonNote041---exec变量作用域问题
fun_y1 = 1{fun_y1 = 1}fun_y1 = 1{locals().fun_y1 = 1(fun_y1 = 1,fun_y1 = 1None)}fun_y1 = 1此时不会污染全局变量。原创 2022-11-27 12:11:16 · 410 阅读 · 0 评论 -
PythonNote040---命名空间globals、locals、vars
基础概念问题,举几个例子,尝试理解~原创 2022-11-27 11:33:36 · 361 阅读 · 0 评论 -
PythonNote039---argparse处理布尔型参数
argparse无法识别布尔型参数,参数传进来时,默认为字符串。字符串强制转布尔型时为True。原创 2022-11-26 14:38:40 · 489 阅读 · 0 评论 -
PythonNote038---python执行shell命令
python执行shell命令的几种方法。原创 2022-08-26 17:53:41 · 456 阅读 · 0 评论 -
PyPackage01---Pandas15_query in 列表及str正则匹配
Introquery in的用法对 dataframe的某个列,执行正则匹配,筛选相应行query inimport pandas as pddf = pd.DataFrame({"x": [1, 2, 3], "y": ['ab', 'bc', 'cd']})df.query("x in [1,2]") x y 0 1 ab原创 2022-04-25 11:04:30 · 2409 阅读 · 0 评论 -
PythonNote037---python中列表合并、嵌套打平
多个列表合并、嵌套列表合并的操作多个列表合并多个列表合并时常规操作,不提x = [0,1]y = [2,3][*x,*y][0, 1, 2, 3]x+y[0, 1, 2, 3]嵌套列表打平import operatorfrom functools import reducea = [[1,2,3], [4,5,6], [7,8,9]]reduce(operator.add, a)[1, 2, 3, 4, 5, 6, 7, 8, 9]或者reduce(lambda原创 2022-04-03 11:09:49 · 931 阅读 · 0 评论 -
PythonNote036---python中字典合并
多个字典合并的操作不同keyx = {"id": 1}y = {"name": "jack"}{**x,**y}{'id': 1, 'name': 'jack'}相同key两个字典合并相同key会出现覆盖的情况x = {"id": 1}y = {"name": "jack","id":2}{**x,**y}{'id': 2, 'name': 'jack'}如果value是list格式,可把同个key的value进行合并,或者做其他操作x = {"id": [1]}y原创 2022-04-02 15:50:58 · 728 阅读 · 0 评论 -
PythonNote035---python中星号的作用
可迭代对象的应用一个*、迭代对象的解包可以对字符串、元组、列表等可迭代对象进行解包fruit = ['apple','pear','grape','banana']*x,y=fruitprint(f"x={x},y={y}")x=['apple', 'pear', 'grape'],y=banana可以把list最后一个元素赋给y,其余的赋给x对于元组同理*x,y=(1,2,3,4,5)print(f"x={x},y={y}")x=[1, 2, 3, 4],y=5一个*、可原创 2022-03-08 09:58:07 · 116 阅读 · 0 评论 -
PyPackage01---Pandas14_对类别型变量做映射
Intro有时候,需要把字符串当做代码执行,看个例子getattrGet a named attribute from an object; getattr(x, ‘y’) is equivalent to x.yimport pandas as pddf=pd.DataFrame({"x":[1,2,3]})getattr(df,"x").count()3getattr(df,“x”)相当于df.x如果想执行df.x*2怎么弄?evaleval("df.x*2")0原创 2022-01-14 10:09:43 · 295 阅读 · 0 评论 -
PythonNote034---把字符串当做代码执行
Intro有时候,需要把字符串当做代码执行,看个例子getattrGet a named attribute from an object; getattr(x, ‘y’) is equivalent to x.yimport pandas as pddf=pd.DataFrame({"x":[1,2,3]})getattr(df,"x").count()3getattr(df,“x”)相当于df.x如果想执行df.x*2怎么弄?evaleval("df.x*2")0原创 2022-01-13 21:11:36 · 209 阅读 · 0 评论 -
PythonNote033---操作Redis
Intro关注点:目前只看hashset内容增改删除常规操作就可类似mysql,怎么减少长连接的操作增改删查import redisdb = redis.Redis(host='127.0.0.1', port=6379, password='12345', db=0, encoding='utf-8', decode_原创 2022-01-13 21:10:59 · 211 阅读 · 0 评论 -
PyPackage01---Pandas13_比较两个df是否一致
Intro检查两个df是否完全一致import pandas as pdfrom pandas.testing import assert_frame_equalx1=pd.DataFrame({"x1":[1,2],"x2":[2,3]})x2=pd.DataFrame({"x1":[1,2],"x2":[2,3]})x3=pd.DataFrame({"x1":[1,2],"x2":[2,4]})def is_df_equal(df1,df2): try: ass原创 2021-11-18 15:50:06 · 1953 阅读 · 0 评论 -
PythonNote032---python打印带颜色字符串
Intro 网上资料很多了,不多说,也有其他方法。记录下自己封装的小函数,方便自己的使用。Codedef magic_str(raw_str, display_mode="", font_color="", back_color=""): """ jupyter打印时可以显示颜色 :param raw_str: 原始字符串 :param display_mode:0默认1粗体4下划线5闪烁7反白显示 :param font_color:字体色-30黑31红32原创 2021-09-14 19:46:42 · 175 阅读 · 0 评论 -
PythonNote031---python和hdfs的交互
目的 有些简单的模型,希望直接python训练完模型,放在hdfs上,预测时,scala或者sql做特征,再用python进行预测,预测结果插入hive表。那么就涉及到如何加载hdfs的模型,遇到了些坑,只给出目前的解决方案,不求甚解~方法连接hdfs的python库有多个,用下来,hdfs安装相对方便,使用尚能满足持久化模型也有多种方法,pickle、joblib、pmml,joblib加载模型报错,暂时没找到解决方案,pickle可用from hdfs import InsecureCl原创 2021-08-25 16:08:30 · 231 阅读 · 0 评论 -
PyPackage01---Pandas12_print dataframe
print dataframe时的参数控制,index和列间隔。直接看代码~去除indeximport pandas as pdpd.__version__'1.1.5'df = pd.DataFrame({"id":[1,2,3],"name":["jordan","kobe","duncan"],"team":["Bulls","Lakers","Spurs"]})print(df) id name team0 1 jordan Bulls1原创 2021-06-08 16:56:41 · 146 阅读 · 0 评论 -
PythonNote030---sklearn近邻api使用
Intro 近邻相关计算的api,底层用了kdtree,速度更快。简单整理总结下,备查。Case1import numpy as npimport pandas as pd from sklearn.neighbors import NearestNeighbors samples = [[0., 0., 0.], [0., .5, 0.], [1., 1., .5], [2, 0, 0], [2, 1, 0]]df = pd.DataFrame(np.array(samples), co原创 2021-03-26 10:23:47 · 155 阅读 · 0 评论 -
PythonNote029---python查询内存、cpu信息
简单记录下,无他~import psutilimport osinfo = psutil.virtual_memory()print(u'内存使用:',round(psutil.Process(os.getpid()).memory_info().rss/1024/1024/1024,2))print(u'总内存:',round(info.total/1024/1024/1024,2))print(u'内存占比:',info.percent)print(u'cpu个数:',psutil.c原创 2021-03-25 15:41:27 · 176 阅读 · 0 评论 -
PyPackage01---Pandas11_explode方法使用
Introhive中有explode方法,进行单行转多行的操作。pandas也有类似的功能,versionadded:: 0.25.0。直接看个case。Signature: df1.explode(column: Union[str, Tuple], ignore_index: bool = False) -> 'DataFrame'Docstring:Transform each element of a list-like to a row, replicating index valu原创 2021-03-25 14:31:13 · 185 阅读 · 0 评论 -
PythonNote028---列表过滤筛选和提取
Intro 希望根据某些已知条件,筛选过滤列表中想要的元素。最直观的方式是希望True False进行指定索引位置的元素提取。以提取偶数为例,看下具体实现~筛选方法一x_list = range(10)[i for i in x_list if i%2==0][0, 2, 4, 6, 8]方法二list(filter(lambda x: x%2==0, x_list))[0, 2, 4, 6, 8]提取主要是针对索引提取,比如要提取索引[2,3]的元素方法一列表推导式原创 2021-03-16 16:39:04 · 193 阅读 · 1 评论 -
PythonNote027---嵌套list偏平化操作
Intro 嵌套list扁平化,把每个子元素取出来,再拉平,放到一个list中。R中有unlist方法,Scala中有flatMap方法,python中也可类似实现。直接看case。方法一x_list = [[0,1],[2,3],[4,5,6]]flat_list = [item for sublist in x_list for item in sublist]flat_list[0, 1, 2, 3, 4, 5, 6]这个用法也会加上if判断,举个例子,把偶数元素提取出来y_l原创 2021-03-16 14:14:17 · 540 阅读 · 2 评论 -
PythonNote026---自动发邮件
Intro有时候需要代码执行到某个阶段,发送消息通知。邮件是一个很好的载体。代码中涉及到smtplib库应该是python自带,email库,anaconda似乎也已经有了。如无,则再安装即可。Codeimport smtplibfrom email.mime.text import MIMETextfrom email.utils import formataddrimport timedef mail(subject="号外号外", body="正文:", receiver='54321原创 2021-02-24 16:57:03 · 119 阅读 · 0 评论 -
Pyecharts全局配置项03---DataZoomOpts
Intro DataZoomOpts可以提供区域缩放的功能,当数据很多,我们想看某些局部数据信息时,可以通过区域缩放查看更细节的数据。版本信息如下:python 3.7.0pyecharts 1.6.2import pyechartsprint("pyecharts版本: "+pyecharts.__version__)import sysprint("python版本: "+sys.version)pyecharts版本: 1.6.2python版本: 3.7.0 (defaul原创 2020-11-26 19:26:20 · 10148 阅读 · 2 评论 -
Pyecharts全局配置项01---TitleOpts
Intro Pycharts分为 v0.5.X 和 v1 两个大版本,v0.5.X 和 v1 间不兼容,v1 是一个全新的版本。用法和v0.5差异较大,由此做些学习笔记。本文介绍标题相关的参数设置。参数设置class TitleOpts( # 主标题文本,支持使用 \n 换行。 title: Optional[str] = None, # 主标题跳转 URL 链接 title_link: Optional[str] = None, # 主标题跳转链接方式原创 2020-11-26 19:24:28 · 6452 阅读 · 0 评论 -
02小提琴图---seaborn
Introimport seaborn as snssns.__version__'0.9.0'seaborn版本0.9.0数据引入import pandas as pdfrom sklearn.datasets import load_irisdata = load_iris()# print(dir(data)) # 查看data所具有的属性或方法# print(data.DESCR) # 查看数据集的简介# 直接读到pandas的数据框中irisDf = pd.Dat原创 2020-11-26 19:17:44 · 245 阅读 · 0 评论 -
01折线图---pyecharts
Intro可视化的整体要求为实现即可,无需关注细节,毕竟可视化只是手段。import pyechartsfrom pyecharts.charts import Linefrom pyecharts import options as optspyecharts.__version__'1.6.2'pyecharts版本1.6.2x = list(range(0, 10))y1 = [i * 2 + 1 for i in list(range(0, 10))]y2 = [i * 3原创 2020-11-26 19:12:32 · 258 阅读 · 0 评论 -
PythonNote025---conda创建python虚拟环境
Intro 有些情况下,需要用到特殊版本的package,我们可以通过创建虚拟环境的方式定制一个版本供某一个项目使用,保证环境的相对独立性。另一方面,如果我们在集群上执行python任务,虚拟环境的方式可以避免在所有节点都安装同一个package的问题。 以conda命令为例,介绍在linux环境中如何创建虚拟环境。conda常用命令conda list 查看已经安装的包conda env list 或 conda info -e 查看已经存在虚拟环境创建虚拟环境conda creat原创 2020-09-08 16:10:57 · 183 阅读 · 0 评论 -
PyPackage02---Numpy01_flatten用法
Intro 对于numpy中的多维数组,需要将其转换成1维。此时可以用flatten方法。相关环境和package信息:import sysimport pandas as pdimport numpy as np print("Python版本:",sys.version)print("numpy版本:",np.__version__)Python版本: 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)]原创 2020-09-03 17:18:57 · 163 阅读 · 0 评论 -
PythonNote021---python格式化输出format和%
算是python的基础操作了,还是记点笔记,不然每次都要百度~import syssys.version'3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)]'%用法整数输出%o —— oct 八进制%d —— dec 十进制%x —— hex 十六进制十进制用的比较多,看下十进制的demoprint("%d"% 520)520浮点数输出%f ——保留小数点后面六位有效数字 %.3f,保原创 2020-07-13 09:25:18 · 198 阅读 · 0 评论 -
PyPackage01---Pandas10_apply方法使用
Intro R里面apply族函数很强大,原来以为python的是阉割版,没想到也很强大,还是需要多看看文档。。。相关环境和package信息:import sysimport pandas as pdimport numpy as np print("Python版本:",sys.version)print("pandas版本:",pd.__version__)print("numpy版本:",np.__version__)Python版本: 3.7.0 (default, Jun原创 2020-07-12 22:23:48 · 227 阅读 · 0 评论 -
PythonNote023---python与kafka交互
Intro Kafka的原理不是很清楚,通过python去订阅local环境的kafka,也只是完成数据的自测。以后有机会再去了解kafka的原理吧~ 需要额外安装pip install kafka-python,相关环境和package信息:import kafkaimport pandas as pdimport sysimport datetimeprint("Python版本:",sys.version)print("pandas版本:",pd.__version__)pri原创 2020-07-12 22:22:01 · 346 阅读 · 0 评论 -
PythonNote022---python读取Apollo配置
Intro 读取Apollo配置信息没啥难的,仅仅做个记录~参考https://github.com/ctripcorp/apollo。在测试环境(106.54.227.205)下登录账号(账号/密码:apollo/admin)设置对应的app_id=weigetang-test增加对应的配置信息{“kafka_addr”:255.255.255.255}import pyapollo# 这个ip地址有问题,需要注意。。。# 但是代码是通的 server_url="http://106原创 2020-07-12 22:21:27 · 528 阅读 · 0 评论 -
PythonNote024---argparse使用
Intro argparse是 Python 标准库中推荐的命令行解析模块,花里胡哨的东西不说了。目前用的最多的时,再起python任务时,通过这个package,把相关参数通过命令行的方式传入。 python版本信息:import argparseimport sysprint("Python版本:",sys.version)print("argparse版本:",argparse.__version__)Python版本: 3.7.0 (default, Jun 28 2018,原创 2020-07-12 22:19:15 · 176 阅读 · 0 评论 -
PythonNote020---通过nowapi获取历史天气数据
import json,requests,jsonimport pandas as pd基础测试url = 'http://api.k780.com'params = { 'app' : 'weather.history', 'weaid' : '1',# 城市编号 'date' : '2020-01-02',# 查询日期 'appkey' : 'appkey',# appkey 'sign' : 'sign',#签名 'format' : 'json',# 有Json原创 2020-05-18 16:17:22 · 625 阅读 · 0 评论 -
PyPackage01---Pandas09_从字典创建dataframe
Intro很简单的需求,不多说,直接看代码import pandas as pd pd.__version__'0.23.4'Demodict1 = {"x1": 1, "x2": 2, "x3": 3}pd.DataFrame(dict1)---------------------------------------------------------------------------ValueError Tra原创 2020-05-18 16:14:55 · 246 阅读 · 0 评论 -
PyPackage01---Pandas08_合并list中的dataframe
Intro 需求很明确,有一个list,每个元素都是一个dataframe,其中dataframe的列数相同。希望把这些子数据框合并成大的数据框。这个list是多线程计算返回的结果,在R里可以直接用do.call函数,那么python中怎么用呢?先看版本信息:系统:in10Python:3.7.0(python --version)Pandas:0.23.4数据构造import pandas as pd # sample dataframesd1 = pd.DataFrame({'o原创 2020-05-18 14:05:43 · 1274 阅读 · 0 评论 -
PythonNote008---时间处理
常用的时间、日期处理生成间隔时序list备用import datetimedef dateRange(start, end, step=1, inputFormat="%Y-%m-%d", outputFormat="%Y%m%d"): """ startDate:开始时间,字符串类型,默认yyyy-MM-dd endDate:结束时间,字符串类型,默认yyyy-MM-dd format:返回的日期字符串格式,可以指定 """ # strptim原创 2020-05-18 13:53:13 · 171 阅读 · 0 评论 -
PythonNote009---线程和进程
线程和进程 通俗意义上的线程和进程的解释,摘自廖雪峰Python教程进程(Process):对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程线程(Thread):有些进程还不止同时干一件事,比如Word,它可以同时进行打字、拼写检查、打印等事情。在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务原创 2020-05-18 13:52:41 · 180 阅读 · 0 评论