python 学习笔记
使用python过程中的笔记
CHERISHGF
多读书,多思考
展开
-
python 划分时间段的方法
是 pandas 库中的一个函数,用于将时间戳数据转换为周期(Period)数据。周期数据是一种表示时间跨度的数据类型,可以表示年、季度、月份、周等。就是他可以直接搞一个年月的时间段出来,感觉比dt.year和dt.month拿出来再拼起来。列中包含了缺失值(NaN),则在计算年份时,缺失值会被视为 float 类型的特殊值。返回的结果是 float64 类型。它返回的格式也和dt.year不一样。原创 2023-12-15 18:52:49 · 403 阅读 · 1 评论 -
python 将复杂日期格式化
平常要将其转为%Y-%m-%d %H:%M:%S格式的时候,我会一步步提取,最后拼接。现在使用pandas.to_datetime()直接进行格式化。原创 2023-11-23 11:53:17 · 158 阅读 · 0 评论 -
接口测试 python requests库
1.从登录状态中获取cookie。3.请求时带上cookies参数。提交url参数数据,原创 2023-07-31 12:28:06 · 313 阅读 · 0 评论 -
python 操作MySQL数据库
【代码】python 操作MySQL数据库。原创 2023-07-25 18:02:24 · 83 阅读 · 0 评论 -
类的继承与方法重载
继承的特点:减少代码和灵活定制新类;子类具有父类的属性和方法;子类不能继承父类的私有属性/方法;子类可以添加新的方法;子类可以修改父类的方法继承的语法:定义类时,在类名后:(继承的类名);多重继承时,括号中放多个类名重载的语法:直接定义和父类同名的方法修改父类方法:在重载的方法中调用父类的方法;同时添加相应的业务逻辑;(调用父类的方法:super.父类方法名())类的特殊方法:...原创 2020-04-03 14:57:26 · 417 阅读 · 0 评论 -
鸭子类型和多态
多态:一种类型具有多种类型的能力;允许不同的对象对同一消息做出灵活的反应;以一种灵活的方式对待可使用的对象;非动态语言必须通过继承和接口来实现。python中的多态:通过继承实现多态(子类可以作为父类使用);子类通过重载父类的方法实现多态python是一种动态语言:变量绑定的类型具有不确定性;函数和方法可以接受任何类型的参数;调用方法时不检查提供的参数类型;调用时是否成功由参数的方法和...原创 2020-04-03 15:16:34 · 445 阅读 · 0 评论 -
面向对象编程的基本知识
面向对象与面向过程面向过程:一开始是为了科学计算而出现的(就像算数学题一样,就是一步一步解题的过程)。编程的方法是自顶向下。代码的主体:程序=数据(变量)+算法(函数/过程)(这感觉就像在刷题的时候遇到的那些题)。通过函数/过程操纵表现世界的数据与状态。面向对象:后来软件应用领域的扩张,是为了模拟现实世界的(现实世界就像人与人的交往一样)。编程方法是自底向上。代码的主体:程序=对象+交互(...原创 2020-04-02 12:18:41 · 239 阅读 · 0 评论 -
对象的特征
实例属性:类被实例化后才会具有的属性。类属性:类定义后就存在,而且不需要实例化私有属性:使用__开头的变量名加以标志,只有类对象自己能访问;使用_开头的变量名加以标注,应该只有类对象及其子类能访问(非强制),单下划线是标志性的不是限制性的,在类外是可以修改的特殊属性:__doc__;__name__对象的名称;__dict__;__module__;__base__包含类对象的全部基类...原创 2020-04-02 13:33:06 · 644 阅读 · 0 评论 -
python与设计模式
设计模式https://www.runoob.com/design-pattern/design-pattern-tutorial.html单例模式普通工厂模式策略模式装饰模式原创 2020-04-03 19:13:23 · 176 阅读 · 0 评论 -
类方法与静态方法
静态方法定义方法:@staticmethod装饰,参数不用self访问特性:不能引用或访问实例属性;可以通过类.类变量访问类属性调用方法:可以用类,类实例调用本质:在类中的一个普通参数而已;使面向对象程序中函数归属于类,易于代码管理用法:与类相关,但不依赖或改变类与实例;创建不同的实例;把类相关工具方法放入类中类方法定义方法:@classmethod,必须提供参数cls...原创 2020-04-02 19:03:40 · 256 阅读 · 0 评论 -
定义和使用类
1.类和实例是什么关系?定义类就相当于建立模型,实例化类就是建立真实事物。2.类的属性和方法分别代表什么?特征/属性:类自身包含或知道的数据能力/方法:类具有能动性的表现3.类实例化的基本步骤是什么?调用__new__方法创建实例,__new__方法自动从object继承调用__init__方法对其进行初始化,__init__方法在类中定义new和init的区别...原创 2020-04-02 12:45:30 · 114 阅读 · 0 评论 -
让对象具有能动性
类的方法类的方法的定义def fun_name(self): pass其中的参数self代表类的实例,在调用方法时由系统自动提供;方法定义时必须指明self参数类的方法的调用与普通的函数调用类似;在类的内部调用:self.<方法名>(参数列表)在类的外部调用:<实例名>.<方法名>(参数列表)以上两种调用方法中,提供的参...原创 2020-04-02 13:49:34 · 155 阅读 · 0 评论 -
python 替换np.nan
现在要实现python3.6不用where和python3.8不用replace下一样的效果,把np.nan替换成None。升级python3.8版本后,where函数用不了,替换成replace结果就把nan替换成6.0了,感觉很奇怪。看了3.6replace的源码里面替换的value等于None时,传递了一个标量。判断是否是np.nan不能直接==np.nan,得用isnan()函数判断。在python3.8中value等于None时,保留None了。不太行,最后就手动换的。原创 2023-02-02 10:33:39 · 315 阅读 · 0 评论 -
python 刷题遇到的一些
1.判断一个值是否在字典的key中,只需要用in判断即可。2.一个整数转为数组,一个数组表示的整数转回整数。3.用字典统计字符串中每个字符出现的频率。4.两数相加(模板)原创 2023-05-06 16:15:28 · 61 阅读 · 0 评论 -
Python 将两个字符的列合并成一个新列
需求:dataframe中两列需要合并成一列,字符串并用“—”连接解决:df["ydate"] =df["y"].map(str) +"-"+ df["date"].map(str) 如果是两列数值相加,则直接两列相加即可df["add"] =df["a"] + df["b"]原创 2022-04-12 17:05:48 · 4402 阅读 · 0 评论 -
python 安装第三方库imblearn
首先把自己的numpy,scikit-learn,scipy卸载掉,然后执行pip install imblearn -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com如果不先卸载直接pip安装的话,在import的时候会有各种scikit-learn,numpy,scipy缺少模块...原创 2021-12-13 18:28:51 · 4331 阅读 · 7 评论 -
python 报错SSLError
背景:anaconda下pip安装报错解决:pip install package 后指定源及信任该源-i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com原创 2021-12-13 15:31:37 · 438 阅读 · 0 评论 -
python 安装第三方库报错PermissionError
背景:anaconda安装第三方库imblearn步骤:切换虚拟环境输入 pip install imblearn报错如下解决:cd到安装路径下再进行pip即可原创 2021-12-13 13:53:41 · 559 阅读 · 0 评论 -
python 字符串join
x = 'abc'y = 'def'print(x.join(y))结果dabceabcf光看的话我还以为结果是‘abcdef’呢实现‘abcdef’结果只需将两个字符串以“+”相连即可解释join()括号里面的是可迭代对象,x插入可迭代对象中间...原创 2021-12-06 10:27:09 · 123 阅读 · 0 评论 -
python 正则表达式应用1
需求:dataframe中某一列包含D1,D2,...D9将其转化为D代码:import recell_param_lte['freq_band'] = cell_param_lte['freq_band'].apply( lambda x: 'D' if re.match('D[1-9]', x) != None else x)原创 2021-10-20 10:44:40 · 84 阅读 · 0 评论 -
python 文件编码有误 报错
背景:csv文件编码为utf-8,但是文件中包含一些无法转义的字符解决办法:1.编码Python3解决UnicodeDecodeError: 'utf-8' codec can't decode byte..问题 终极解决方案_技术笔记-CSDN博客python加载csv,tsv文件时遇到的各种编码错误问题解决方法 - 知乎2.以上方法不适用于我的情况,因为我不是decode读取文件,我是pd.read_csv,我想要一个参数直接跳过编码错误的行。方法:在pd.read_原创 2021-10-20 10:28:28 · 337 阅读 · 0 评论 -
python 报错文件被占用
错误描述:程序运行过程中,报错后,调用删除文件时显示另一个程序正在使用文件,无法删除。仔细但是本人并没有在外面打开该文件,也没有什么东西调用这个文件。很奇怪报错如下:过程:然后打断点发现,我是用python读取csv文件的时候是按照chunk读取的,修改读取方式,该错误消失。所以应该是删除文件的时候,该文件还是打开读取的状态所以不能访问并删除解决:没有关闭,那将文件关闭就好了。使用with open打开文件后用pandas读取文件,删除之前先关闭文件。代码修改如下:.原创 2021-08-10 14:30:10 · 3823 阅读 · 0 评论 -
python 使用ActiveMQ
1.首先安装stomp模块https://pypi.org/project/stomp.py/#filespip install stomp.py2.查看官方文档http://jasonrbriggs.github.io/stomp.py/quickstart.htmlimport timeimport sysimport stompclass MyListener(stomp.ConnectionListener): def on_error(self, fram原创 2021-08-02 15:46:38 · 2207 阅读 · 0 评论 -
JPype使用
代码from jpype import *startJVM(getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % ('./springboot.jar'))test = JPackage("com.gf.springboot").test()print(test.run(" jpype"))print(test.calc(1, 1))shutdownJVM()一开始直接用打好的的jar包,但是读入的时候总是说找不到我的类,要不然就是原创 2021-07-26 14:31:36 · 846 阅读 · 1 评论 -
报错SystemError: java.nio.file.InvalidPathException: Illegal char <:> at index 2
背景:使用jpype调用Java接口代码如下:from jpype import *path = getDefaultJVMPath()startJVM(path, "-ea")java.lang.System.out.println("Hello World")shutdownJVM()报错:发现错误过程:看这个错误应该是路径有问题,\D:\Program Files\Java\jdk1.8.0_241\lib\tools.jar,看到这个前面多了一个“\”,手动去掉“原创 2021-07-26 11:00:03 · 8595 阅读 · 1 评论 -
python 读json文件时乱码
import jsonpath = './report14.json'import jsonpathwith open(path,'rb') as f: load_dict = json.load(f) print('这是文件中的json数据:', load_dict) print('这是读取到文件数据的数据类型:', type(load_dict))文件里不是中文,但是乱码了最后也没做啥处理,换了一种方式path = './report14.json'.原创 2020-06-19 17:34:36 · 487 阅读 · 0 评论 -
python 数据处理踩过的坑
1.将dataframe中所有的np.nan转为Nonedf = df.where(df.notna(), None)2.使用lambda及判断对dataframe中列按照条件改造df['enb_name'] = df['enb_name'].apply(lambda x: x==x if x is None else (x.replace(',', '-') if x.find(',') else x==x))将列中的包含的逗号都替换成-3.替换dataframe列中的true,原创 2021-04-09 10:16:51 · 389 阅读 · 0 评论 -
python 血泪教训
我要合并两个50万行的dataframe,结果因为数据是我自己造的,合并字段都是重复的,导致合并时内存炸裂,我一时又想不到什么好办法,心态也炸裂了遇到事情千万不要慌~~~原创 2021-03-21 10:22:35 · 137 阅读 · 0 评论 -
python 合并多列并且去掉列里面的空字符
需求:我需要把多列原因合并成一列,并用,连接,每一行至少有一个原因,去掉列表的中括号效果:原因A,原因B,原因C,原因D,原因E,原因F首先把多列合并并创建一个新列,我的失败原因是25列以后df['fail_reason'] = list(df.iloc[:, 25:].values)然后写一个apply,去掉中括号将不是空字符的原因放进去df['fail_reason'] = df['fail_reason'].apply(lambda x: ','.join(str(i) f原创 2021-01-21 18:02:06 · 885 阅读 · 4 评论 -
python dataframe删除某列含空值的行
df.dropna(subset=['列名'],inplace=True)subset参数指定列,inplace参数为True,声明修改原dataframe原创 2021-01-08 11:21:05 · 5414 阅读 · 0 评论 -
python 操作hdfs 问题解决
python利用hdfs库通过webhdfs操作hdfs,必须在客户端机配置ip映射报错requests.exceptions.ConnectionError: HTTPConnectionPool(host='bj-hw-8f-18-162', port=50075): Max retries exceeded with url: /webhdfs/v1/test.txt?op=OPEN&namenoderpcaddress=hMaster:9000&offset=0 (Caused原创 2020-09-07 15:56:43 · 1855 阅读 · 0 评论 -
问题解决:psycopg2.errors.NumericValueOutOfRange: integer out of range
问题,dataframe中包含nan解决:dt_data = dt_data.where(dt_data.notna(), None)将nan转换成None原创 2020-08-31 21:26:55 · 1227 阅读 · 0 评论 -
python 输出列表去掉中括号
还以为有更高级的办法,结果就是遍历list1 = [19, 20, 21]list2 = ['19', '20', '21']print(list1)print(list2)list1 = ','.join(str(i) for i in list1)list2 = ','.join(str(i) for i in list2)print(list1)print(list2)原创 2020-09-03 17:51:12 · 23230 阅读 · 6 评论 -
python series修改index名称
已经有一个series但是index名称不是我想要的,所以要修改一下重建一个series,指定新的indexsx_beam_param_zte = pd.Series([cgi_envelope['cgi'], cgi_envelope['manufacturer'], cgi_envelope['beam_azimuth'],cgi_envelope['beam_downtilt'], cgi_envelope['hor_beam_width'], cgi_envelope['vert_be原创 2021-01-08 11:05:39 · 3016 阅读 · 0 评论 -
python 一对多保存列
在dataframe中有一列data_value为D1/D2/D3/D4/D5/D6这种形式,现在需要将其分开,变为多行,cgi列变为多个sx_cell_extend = (sx_cell_extend.set_index(['cgi'])['data_value'] .str.split('/', expand=True) .stack() .reset_index(l原创 2021-01-08 11:10:51 · 239 阅读 · 0 评论 -
python 坐标转换
用于地图显示,坐标转换import mathfrom typing import Tupleimport numpy as npimport numbersPI = math.piR = 20037508.34K0 = 0.9996FE = 500000FN = 0a = 6378137b = 6356752.3142e = 0.0818192e2 = pow(e, 2)e4 = pow(e, 4)e6 = pow(e, 6)x_pi = 3.1415926535897原创 2021-01-07 16:48:49 · 693 阅读 · 1 评论 -
python 汉字数字转阿拉伯数字
主要用于大写数字转阿拉伯数字CN_NUM = { '〇': 0, '一': 1, '二': 2, '三': 3, '四': 4, '五': 5, '六': 6, '七': 7, '八': 8, '九': 9, '零': 0, '壹': 1, '贰': 2, '叁': 3, '肆': 4, '伍': 5, '陆': 6, '柒': 7, '捌': 8, '玖': 9, '貮': 2, '两': 2,}CN_UNIT = { '十': 10, '拾': 10,原创 2021-01-07 16:46:02 · 1104 阅读 · 0 评论 -
python 判断是否是正负整数
为了删除小数,但是不能删除1.0这样的情况def is_number(s): """ 判断是否是正负整数 Args: s: 数字 Returns: bool类型 """ s = str(s) if s.count('.') == 1: # 小数 new_s = s.split('.') left_num = new_s[0] right_num = new_s[1]原创 2021-01-07 16:45:03 · 2108 阅读 · 0 评论 -
python chardet 判断文件编码
将文件全部读进来import chardetdef get_encoding(file): with open(file, 'rb') as f: tmp = chardet.detect(f.read()) return tmp['encoding']如果文件较大,这个就不好用了分块读,达到一定可信度,这样就没问题了from chardet.universaldetector import UniversalDetectordef g原创 2021-01-07 16:41:25 · 607 阅读 · 0 评论 -
计算矩阵行之间的欧氏距离作为新矩阵的元素
# -*- coding: utf-8 -*-"""@Description: @Author: gaofan@Date: 2020-09-23 16:46"""import numpy as npfrom scipy.spatial.distance import pdist, squareform# 方法一:矩阵运算input_array = np.array([[1, 2], [3, 4], [5, 6]])input_array2 = input_array * input_a.原创 2020-09-23 18:31:34 · 568 阅读 · 0 评论