
实操笔记
项目中途记录的笔记
孔胖
不积跬步,无以至千里
展开
-
prophet模块学习总结-20221228
Prophet是 Facebook 2017 年的工作——高质量且简单易用的时间预测模型。适用于大规模的时序预测模型。它不仅解决了时序预测的建模问题,还解决了模型的可解释性问题。Prophet是基于可分解(趋势+季节+节假日)模型的开源库。它让我们可以用简单直观的参数进行高精度的时间序列预测,并且支持自定义季节和节假日的影响。用于分析和预测周期性数据时,一种强大而简单的方法是加法模型(additive model)。原创 2022-12-28 22:45:00 · 1559 阅读 · 1 评论 -
python_正则表达式不匹配某些字样-2022.2.24
业务需求,需要大致匹配出来——表达“什么时候学习”这样字段的句子可能会出现:但不匹配 “学习” 后面出现 “金额,补偿”等字样的句子如:第一个 .* 匹配中间可能出现的 可以,能够 之类的词语补充学习内容:零宽负向先行断言 和 零宽负向后行断言(?!exp):零宽负向先行断言,只会匹配后缀exp不存在的位置(?<!exp)零宽负向后行断言,用来查找前缀exp不存在的位置所以第二个.*满足了我们后续的文本 一旦出现金额类字样 就过滤掉的要求第二条没有匹配出来原创 2022-03-04 14:37:54 · 1547 阅读 · 0 评论 -
python_连接oracle报错ORA-12505
报错详情为:ORA-12505,TNS:listener does not currently know of SID given in connect descriptor报错的提示为不清楚这个SID错误可能1一部分是未使用正确的SID,需要另行确认正确的SID,如果是正确的,且使用的是SID连接的话,则需要数据库服务器端修改listener.ora文件,具体修改参照文档:文档链接文档链接2文档链接3关于listerner.ora文件和tnsnames.ora文件错误可能2Py原创 2022-01-05 11:26:23 · 2149 阅读 · 0 评论 -
奇安信Python动态解析代码-2021.12.17
项目上线需要通过奇安信代码扫描,缺陷信息主要如下:python允许用户动态的执行指令,当这一功能被恶意用户利用,就会发生动态解析代码攻击。示例给的是:op = request.GET['operation']result = eval(op)这个解决办法很简单:直接把传过来的字符串 改为import astop = request.GET['operation']result = ast.literal_eval(op)...原创 2021-12-17 20:45:00 · 1109 阅读 · 0 评论 -
奇安信Python反射型XSS解决办法-2021.12.17
项目上线需要通过奇安信代码扫描,在网络上没有找到Python的具体解决办法,参考别人的博客试了一下,通过了代码测试缺陷的详细信息为:应用程序通过web请求获取不可信的数据,在未检验数据是否存在恶意代码的情况下,便将其传送给了web用户,应用程序将容易受到反射型xss攻击。示例:name = request.GET['name']return 'username:'+name如果name里包含恶意代码,那么web浏览器就会执行该代码,应用程序将受到反射型xss攻击。修复建议:1.输入验证(比原创 2021-12-17 16:23:10 · 2305 阅读 · 0 评论 -
Python-filter用法-2021.10.27
filter用来过滤列表中不要的元素比较方便,原来笔记记过,但没怎么用这次详细列一下filter——把非True的内容过滤掉filter(function or none , iterable)# eg1:前面为none,把后面数据筛选出来(True)list(filter(None,[1,0,False,True]))[1,True]# eg2:前面为函数,后面迭代数据相当于函数数据def odd(x): return x%2temp = range(10)show =原创 2021-10-28 08:59:02 · 854 阅读 · 0 评论 -
Python-汉字的数值转为阿拉伯数字-2021.10.27
cn2an模块介绍:当时没看详细介绍,还另写了一个匹配,刚为了写总结,发现人家模块写的非常完善好用,不用自己加工,看例子吧简单例子:strict模式(严格匹配)# 在strict模式下,只有严格符合数字拼写才可以转换try: output_s = cn2an.cn2an("一百五十五","strict") # √ print(output_s)except ValueError: print('输入有误') try: output_s = cn2an原创 2021-10-28 08:57:12 · 566 阅读 · 0 评论 -
Python-flask同时启动两个端口服务-2021.10.27
在服务器上同时开启两个flask服务,内存消耗过高,导致其中一个服务总是过一段时间就挂掉于是尝试将两个Python的flask服务合并到一个脚本里,只启动一个Python进程,原来两个脚本里的两个端口仍保持不变测试demofrom flask import Flaskfrom threading import Threadimport osapp1 = Flask('app1')@app1.route('/')def foo(): return '1'Thread(targe原创 2021-10-28 08:51:26 · 6786 阅读 · 9 评论 -
Python_对dataframe两列同时操作_20210219
遇到的问题是两个字符串拼接,查到了三种对多列同时操作的方法,其中两种可用生成列表,可直接填充为df中一列df['new_col']=list(map(lambda x,y: function(x,y), df['col1'], df['col2']))参考见:https://blog.youkuaiyun.com/tonylorn/article/details/85017221?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFro原创 2021-10-28 08:41:49 · 1254 阅读 · 0 评论 -
Python-eval小记-字符串转列表-2021.10.27
原来用eval将字符串转过字典,但没有好好看过这个方法今天查了一下,介绍是eval() 函数用来执行一个字符串表达式,并返回表达式的值。可以看https://www.runoob.com/python/python-func-eval.html,这样该方法的执行范围就宽了很多下面主要记录前段时间用到的很好的一个技巧因为业务场景需要,要将很多连续,或者无规律的数值记录在数据库里,然后在脚本中将存储的字符串再转为列表格式进行运算。示例range(1,4)[2,3,8]原创 2021-10-28 08:38:12 · 394 阅读 · 0 评论 -
Python-正则表示汉字数字-2021.9.17
一个可能不怎么准确的表示方法,但业务上可能遇到的不同表示形式的汉字数值都可以找出来(一百二十三,一二三等)正确表示都会匹配不正确的也会读出来只匹配到了百位,因为业务上只到了百位[一|二|三|四|五|六|七|八|九|十]?[百]?[一|二|三|四|五|六|七|八|九|十]?[一|二|三|四|五|六|七|八|九|十][一|二|三|四|五|六|七|八|九|十]?match_pile = re.compile('[一|二|三|四|五|六|七|八|九|十]?[百]?[一|二|三|四|五|六|七|原创 2021-10-28 08:34:18 · 897 阅读 · 2 评论 -
python-dataframe空值去不掉的问题,dropna,fillna不起作用-2021.8.31
强制把NaT或者Nan替换为None,这样再对None做处理object这是一种通用的数据类型。在没有明确的指定类型的情况下,所有的数据都可以认为是object类型。dfTest2 = pd.DataFrame(dict(InvoiceDate=pd.to_datetime(['2017-06-01', pd.NaT])))dfTest2.InvoiceDate.astype(object).where(dfTest2.InvoiceDate.notnull(), None)0 2017-原创 2021-08-31 11:55:35 · 1887 阅读 · 0 评论 -
python_dataframe存入oracle很慢-2021.8.23
很慢的原因:主要是varchar转为clob存入,数据长度太长通过sqlalchemy中的types将所有的varchar类型固定为varchar格式from sqlalchemy import create_engine,typesengine = create_engine('oracle://ycr:ycr123@192.168.100.10:1521/stock')#设置写入类型,不然默认是用CLOB类型写入,内置的类型转换很慢,小量数据无所谓dtyp = {c:types.VARCHAR原创 2021-08-26 17:36:53 · 594 阅读 · 0 评论 -
python-网格搜索数据格式问题-2021.7.22
第一次直接输入的拆分开的dataframe数据features和outcomes但是在报错了,具体代码为:grid_obj = GridSearchCV(clf,parameters,scoring=scorer)grid_fit = grid_obj.fit(X_train,y_train)具体报错信息为:IndexError: too many indices for array: array is 1-dimensional, but 2 were i…就是要一维数据给的二维的但这里给原创 2021-07-23 17:19:28 · 473 阅读 · 1 评论 -
Python-pydicom读取dcm文件报错-2021.6.5
读取别的文件的时候都好好的,在读一个小文件的时候,报错。具体报错如下:RuntimeError: The following handlers are available to decode the pixel data however they are missing required dependencies: GDCM (req. GDCM), pylibjpeg (req. )解决方法:下载安装pylibjpeg打开cmd,pip install pylibjpeg pylibjpeg-l原创 2021-06-05 16:00:57 · 3610 阅读 · 6 评论 -
python-读取dcm文件-2021.5.24
读取dcm文件# 采用pydicom模块import pydicom# 数据路径file_path = r"C:\Users\孔啊吱\Desktop\kaggle_covid19\data\3dcdfc352a06.dcm"# read_filedata0 = pydicom.read_file(file_path)# file_data = data0.pixel_array# print(file_data)# dcmreaddata1 = pydicom.dcmread(f.原创 2021-06-02 17:00:42 · 7494 阅读 · 3 评论 -
python-jdbc同时连接两个不同的数据库-2021.5.24
因为需要JayDeBeApi连接hive和oracle两个数据库先连接一个,再连接另一个的时候会报错参考添加链接描述给出的解决方案将两个jar包依赖放到一个列表里面就可以了~另外:使用JayDeBeApi连接的时候可能会报这个错Class oracle.jdbc.OracleDriver is not found这个问题可能造成的原因之一是:因为连接的jar包文件路径——jarFile中带有中文放到一个不带中文的路径下运行就可以了!!!大家可以试一下~...原创 2021-05-24 17:57:22 · 725 阅读 · 0 评论 -
python-向es存数据,数据类型报错-2021.5.11
第一次建表的时候,是直接打包的数据存进去的es直接根据传入数据确定里各字段的类型(日期类型转为了日期存进去,再次插入的时候是字符串,所以报错)当再次从别的地方存入数据时,出现字段类型不匹配报错为:‘error’: {‘type’: ‘mapper_parsing_exception’, ‘reason’: “failed to parse field [起始日期] of type [date] in document with id ‘PxqwEnkBj49MCEb4LDfv’. Preview o原创 2021-05-11 13:58:56 · 1743 阅读 · 2 评论 -
python-共现矩阵(共词矩阵)计算
共现矩阵(共词矩阵):统计文本中两两词组之间共同出现的次数,以此来描述词组间的亲密度code(我这里求的对角线元素为该字段在文本中出现的总次数):import pandas as pddef gx_matrix(vol_li): # 整合一下,输入是df列,输出直接是矩阵 names = locals() all_col0 = [] # 用来后续求所有字段的集合 for row in vol_li: all_col0 += row f.原创 2021-04-20 13:45:00 · 8446 阅读 · 22 评论 -
python-dropna不起作用问题解决
因为存在空字符串,所以dropna去不掉用replace把空字符串替换为np.nan但要注意replace的写法,别乱写(* ̄︶ ̄)pleasedf_need = df1[["id","条件"]].replace('',np.nan).dropna(how='any',subset=["条件"]).reset_index(drop=True) # 只要条件为空,则删掉该行...原创 2021-04-02 17:48:25 · 3348 阅读 · 0 评论 -
python-字典中嵌套字典,全部拆开转为dataframe格式
主要解决字典中嵌套字典,需要全部转为dataframe格式的问题step1,先将外部大字典转为dataframe格式[{'xh':1,'content':{'param1':'段落1','param2':'段落2'}},{'xh':2,'content':{'param1':'段落3','param2':'段落4'}}]输入为字典组成的列表pp = pd.DataFrame.from_dict(dic_temp)转dataframe格式后step2:提取拆开的列名列.原创 2021-04-02 17:33:43 · 6739 阅读 · 0 评论 -
flask连接数据库(flask_sqlalchemy)-2021.3.26
flask连接数据库(flask_sqlalchemy)文章目录flask连接数据库(flask_sqlalchemy)1.导入扩展类2.设置数据库URI3.创建数据库模型(db_try.py)4.建表5.插入数据6.查询7.删除8.更新1.导入扩展类Flask 有大量的第三方扩展,这些扩展可以简化和第三方库的集成工作。 Flask-SQLAlchemy 可以方便操作数据库。from flask_sqlalchemy import SQLAlchemy # 导入扩展类app = Flask(_原创 2021-03-26 17:37:02 · 432 阅读 · 1 评论 -
Python-字符串回车去不掉问题
问题:从数据库获取了一条数据,回车怎么都去不掉,尝试了各种方法最后用chr(10)进行了替换。Python中常见的回车表示’\n’:x.replace('\n','\t')’\r’:x.replace('\r','\t')一般一种不行尝试另一种就可以了,也可用notepad++查看字符中的回车类型。(CR表示’\r’;LF表示’\n’)查看方式可见https://jingyan.baidu.com/article/48206aea814786216ad6b39e.html但遇到的字符串进原创 2021-03-05 11:35:05 · 1256 阅读 · 1 评论 -
Python-输出的字符中包含%s,%d等格式化输出的特殊表达
输出的字符串里面包含格式化字符串的内容(SqlServer中日期相关的语句)例如 包含%s,%d问题:是在自动生成datax的脚本里面需要写入时间转换的语句语句为: "where": "时间字段> DATE_FORMAT('${sysdate}','%Y-%m-%d %H:%i:%S')",包含 %Y,%m等正常写入,报错为TypeError: not enough arguments for format string查阅资料后,上述的%Y-%m-%d %H:%i:%S 中的%均需要原创 2021-01-26 17:56:29 · 688 阅读 · 0 评论 -
Python-用eval字符串转字典报错
报错:File “”, line 1, in NameError: name ‘num’ is not defined原因:eval不支持null,true,false等,没法正确转换为None,True,False等,所以,才明白,此处的错误,是由于上面的字符串中,包含了null,eval函数无法正确解析,所以报错“NameError: name ‘null’ is not defined”。(源自https://www.crifan.com/resolved_in_python_using_e原创 2020-12-02 17:55:58 · 1263 阅读 · 1 评论 -
Python调接口编码格式报错
呦吼吼,查了半天试了各种输入的编码格式也不行一直在requests.request(“POST”, url, headers=headers, data=payload)中报错报错:UnicodeEncodeError: ‘latin-1’ codec can’t encode characters in position最后把传入的payload改为了data=payload.encode()就可以了原因是:传入数据中有中文...原创 2020-12-01 18:45:58 · 952 阅读 · 0 评论 -
Python-dataframe自增的存入pgsql
首先需要把pgsql中的表设置为主键自增在navicat里尝试将主键设为serial格式报错经查找资料,需要:需要建一个主键自增策略将该自增策略添加到我们表格的主键上自增策略:-- CREATE SEQUENCE "模式名(public)"."自增策略名称"-- INCREMENT 1-- START 1-- MINVALUE 1-- MAXVALUE 99999999-- CACHE 1;添加:alter table "模式名"."表名" alter column id s.原创 2020-11-20 17:44:58 · 724 阅读 · 0 评论 -
数据库-pgsql里面的表一直打不开,操作缓慢解决方法
表里只有3w+数据,但删除字段一直保存不了复制表,删除表等操作一直卡住后来查了一下发现是表锁住了看pgsql的表是否锁住select oid from pg_class where relname='表名'select pid from pg_locks where relation='上面检索出的oid'如果能检索出结果,则使用下面的语句逐个kill掉进程(我的理解),进程编号是刚才查的pidselect pg_terminate_backend('这里是上面的检索结果')--或者se原创 2020-11-20 15:55:11 · 4060 阅读 · 1 评论 -
Python-时间格式处理(带毫秒的日期+Unicode转str)
转换时间格式的时候,报错ValueError: unconverted data remains: .957转换的时间为:2017-03-20T16:39:26.957语句为:apply(lambda x: datetime.strptime(x, ‘%Y-%m-%dT%H:%M:%S’))报错原因:后面的小数为没处理,时间格式带毫秒改进办法apply(lambda x: datetime.strptime(x, ‘%Y-%m-%dT%H:%M:%S.%f’))加上.%f=====原创 2020-11-19 15:47:28 · 2638 阅读 · 0 评论 -
实操笔记-Python连接mysql,sql_sever,oracle,hive
Python连接数据库方法汇总# 连接mysqlimport pymysqlconn = pymysql.connect(host='ip', port=端口, user='用户名', passwd='密码', db='数据库名')if conn: print('OK')cur = conn.cursor(原创 2020-11-04 16:10:12 · 148 阅读 · 0 评论 -
实操笔记-python脚本使用jdbc连接oracle,hive
因为服务器上的cx_Oracle导入一直有问题,尝试使用jdbc进行连接JDBC:(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问。Python使用jdbc进行连接,需要使用jaydebeapi(cmd窗口安装)先以连接oracle为例,需要:url:‘jdbc:oracle:thin:@31.0.***.***:1521:orcl’(ip:端口:服务名)用户名,密码驱动:‘o原创 2020-11-03 15:00:13 · 2054 阅读 · 5 评论 -
实操笔记-Python模糊查找文件并删除
网上主要是循环判断文件名不想这样写直接导入os,执行cmd命令例如找目录下所有txt结尾的文件/或者以wsdhr_开头的文件import osd = os.system('find data/datafile -name *.txt')print(d) # d返回执行结果,状态为0则语句执行成功#如果查找后要删除的话d = os.system('find data/datafile -name wsdhr_* | xargs rm -f')print(d)cmd命令:find 文原创 2020-10-23 14:08:06 · 1643 阅读 · 0 评论 -
实操笔记-Python判断两个列表元素是否相等/包含的简单方法-2020.10.16
需要判断两个列表list中的元素是否相等不要求位置一致(发现很多网上的例子都用的循环,可以直接转为集合判断)l0=['a','b']l1=["a", "b"]l1 == l0Out[21]: True#####################################l1=["a", "b"]l2=["b", "a"]l1 == l2Out[16]: False#####################################l11 = set(l1) # 转.原创 2020-10-16 10:14:33 · 9875 阅读 · 4 评论 -
实操笔记-Python判断是否是工作日(每年法定节假日查询)-2020.10.14
需要写程序判断数据更新是否连续(中间需要排除法定节假日)网上查阅资料主要有两种方法- 调用接口,爬取日历网站,获取节假日信息目前找了几个博客,接口网站不稳定,容易失效参考资料:https://blog.youkuaiyun.com/xinit1/article/details/72833988https://www.jianshu.com/p/9a46391a508f?utm_campaign=hugohttps://www.cnblogs.com/txw1958/archive/2012/原创 2020-10-14 15:24:54 · 1954 阅读 · 10 评论 -
Python-日期排序-2020.09.08
输入一组日期利用Python判断时间是否连续若不连续 给出间断日期 缺失了几个月份以及缺失的日期import pandas as pddf = pd.read_excel(r'C:/Users/***/Desktop/**/日期排序/日期数据4.xlsx',header=None,names=['riqi'])df.sort_values(by=['riqi'],ascending = True,inplace= True)df['year_month'] = df['ri原创 2020-09-08 14:38:39 · 591 阅读 · 0 评论 -
postgresql更新某一列update_2020.08.31
主要是postgresql进行数据更新,使用查询值来插入已有表的某一列已有表,使用update更新更新为某一固定初始值update tablename set columname=0; --设初始值为零更新为查询值,带条件(需要与主键对应) update tableA AA set name = BB.name , sex = BB.sex from tableB BB where AA.id = BB.id ; 注意不要写成from AA,BB ,即不要...原创 2020-09-01 17:59:45 · 2859 阅读 · 0 评论 -
实操笔记_python连接postgresql数据库_2020.09.01
1.需要使用psycopg2模块模块安装打开cmd窗口 pip install psycopg2(安装第三方库warning,Retrying (Retry(total=4, connect=None, read=None, redirect=None, st。。。问题)在后面加上 -i http://pypi.douban.com/simple --trusted-host pypi.douban.compip install psycopg2 -i http://pypi.douban.原创 2020-09-01 17:51:24 · 233 阅读 · 0 评论 -
实操笔记_python_动态生成一系列变量
可以使用内置函数locals()生成一系列的动态变量如a1,a2,a3……names = locals()for i in range(3): names['a'+str(i)] = i print('a'+str(i)) print(names['a' + str(i)])out:a00a11a22问题:主要是Python执行sql操作 中间需要调用前面的一系列变量sql1 = ‘语句一’sql2 = ‘语句二’……sql19 = ‘语句十九’即原创 2020-09-01 17:46:31 · 369 阅读 · 0 评论 -
Python连接数据库执行多条SQL查询示例
今天自己写的小脚本可能会比较方便连接的是postgresql,连接方法的介绍文章改天放上来import psycopg2conn = psycopg2.connect(database="哪个数据库", user="用户名", password="密码", host="ip地址", port="端口")class connect: def __init__(self,conn): self.conn = conn self.cur = conn.curs原创 2020-08-26 17:33:26 · 4657 阅读 · 0 评论 -
project02- 为CharityML寻找捐献者2(模型建立、评估及优化在这里)
此篇是为CharityML寻找捐献者的第2篇笔记,第1篇数据预处理在这里:Naive Predictor(朴素//天真预测器)通过查看收入超过和不超过 $50,000 的人数,我们能发现多数被调查者年收入没有超过 $50,000。如果我们简单地预测说“这个人的收入没有超过 $50,000”,我们就可以得到一个 准确率超过 50% 的预测。这样我们甚至不用看数据就能做到一个准确率超过 50%...原创 2020-02-13 20:55:26 · 264 阅读 · 0 评论