
python小白成长之路
python各种使用方法
金融小白数据分析之路
小白数据分析、前后端开发工作者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
编写整洁的python之装饰器
如何使用装饰器优化Python代码中重复的try-except错误处理。通过定义一个通用装饰器handle_bdh_not_defined,可以统一处理多个函数中相似的异常情况,特别是当未定义数据源"bdh"时的错误提示。装饰器实现方式是将错误处理逻辑封装在外层函数中,通过参数传递自定义错误信息,从而减少代码重复,提高可维护性。文中对比了优化前后的代码结构,说明装饰器在简化代码方面的优势。原创 2025-06-09 15:01:45 · 169 阅读 · 0 评论 -
给pandas apply加加速进阶之numpy select
本文比较了NumPy的np.select和pandas的df.loc在处理多条件数据时的性能差异。np.select通过向量化操作提供更优性能,适合处理互斥条件和简单逻辑,代码更简洁;而df.loc则灵活性更高,适用于复杂逻辑和逐行处理场景。文章通过具体案例展示了两种方法的使用方式,建议根据实际需求选择:优先考虑性能时使用np.select,需要灵活性时采用df.loc或apply方法。参考文档包含NumPy官方说明和性能优化建议。原创 2025-05-28 15:47:45 · 332 阅读 · 0 评论 -
用最简单的方法对大数据进行处理 vs spark(不需要安装大数据处理工具)
不需要安装大数据处理工具,用最简单的方法对大数据进行处理 vs spark原创 2024-07-29 15:43:00 · 218 阅读 · 0 评论 -
Pip换源,以及python解耦方法实现
Pip换源 ,解耦原创 2024-07-04 20:11:22 · 604 阅读 · 0 评论 -
python自动移除excel文件密码(升级v2版本)
python自动移除excel文件密码原创 2024-07-02 13:37:24 · 565 阅读 · 0 评论 -
python自动移除excel文件密码(小工具)
自动移除excel文件密码,可以批量进行原创 2024-06-27 14:50:15 · 855 阅读 · 0 评论 -
策略模式与函数式编程应用
面向对象思维,使用设计模式,让代码可读性更强。原创 2024-06-24 18:59:33 · 368 阅读 · 0 评论 -
tkinter页面及treeview布局
tkinter一个好的布局,让元素能够更好的展示,让功能更加的完善。原创 2024-03-14 16:38:34 · 781 阅读 · 0 评论 -
python、SQL日新增人数统计
解决的方案SQL,按日期排序后只保留第一次出现的数据,这个问题就解决了。保留第一次出现的数据按日进行统计,日数据就是新增的数据。新增人数统计,就是要看比前一天新加的人。用一个SQL语句解决。原创 2023-10-20 17:04:30 · 259 阅读 · 0 评论 -
pyqt6使用多线程,使前台展示和后台处理数据分线程进行
在这个特定的用法中,pyqtSignal(pd.DataFrame)定义了一个可以传递pd.DataFrame类型数据的信号,在需要传递pd.DataFrame类型数据时,可以使用该信号进行传递。当dataProcessed信号发射时,该信号会自动将传递的pd.DataFrame类型数据作为参数传递给showResult槽函数,从而在槽函数中可以直接访问该数据。需要注意的是,当定义槽函数时,参数列表的类型和顺序需要与信号传递的参数列表的类型和顺序一致,否则会导致传递的参数无法被正确接收和处理。原创 2023-04-27 13:51:03 · 868 阅读 · 1 评论 -
pandas读取和处理大文件
chunksize 为每次读取的数据量,可以减少内存的使用。一般笔记本的内存不可能无限大。进行数据统计和数据筛选的的话用这种方式比较方便。chunk可以处理进行分块处理数据。原创 2023-04-19 16:13:34 · 426 阅读 · 0 评论 -
pandas读取excel精度及replace替换多个
金额部分增加float64,可以进行还原在使用的格式。通过dtype中定义参数来指定数据的格式。原创 2023-02-13 10:31:50 · 315 阅读 · 0 评论 -
pyqt页面布局
选择项 QRadioButton。增加到控件中 setLayout。增加到布局中 addWidget。垂直布局QVBoxLayout。水平布局QHBoxLayout。组别 QGroupBox。实现主要是进行嵌套的方法。原创 2022-12-02 10:14:10 · 206 阅读 · 0 评论 -
QT Designer配置使用
Qt Designer 设置原创 2022-11-28 09:27:50 · 546 阅读 · 0 评论 -
python排序每200个一组不同身份证
3. 每次取身份证最后一个,每次获取前200,加入到列表中,把加入的数据删除,反复操作。4. 注意:可能最后几组数据会发生问题,出现都是同一个的过多,导致分配不均衡。1.对需要进行排序的身份证进行求和,次数从大到小的身份证进行排列。2.进行一对多匹配。原创 2022-10-26 15:55:20 · 218 阅读 · 0 评论 -
python对md5加密
salt为加密可以自己填写import hashlib# md5加密,加盐def md5(s, salt='****'): s = str(s + salt).encode() #转换成bytes 二进制 m = hashlib.md5(s) return m.hexdigest()原创 2022-04-25 10:15:43 · 987 阅读 · 0 评论 -
给pandas的map、apply加加速 及 assign 列操作
源于pandas做数据分析很好用,map、apply使用的也比较多,非常的耗时间。map性能优于apply我专门有文字讲解。此次再次基础上再次提升# 加速前import timeimport pandas as pdimport numpy as npdef func(x): import math return math.sin(x.a**2) + math.sin(x.b**2)df_size = int(5e6)if __name__ == '__main__':原创 2022-04-10 20:37:38 · 1592 阅读 · 0 评论 -
python进行多进程完成IO操作
1.IO操作太慢了,太多的文件需要进行读写效率过于低下了。2. 真实遇到了问题,发现多线程带来的优势。具体案例后期进行完善原创 2022-04-09 23:17:18 · 829 阅读 · 0 评论 -
python getattr和hasattr的使用
python官方定义getattr(object, name[, default])返回对象命名属性的值。name 必须是字符串。如果该字符串是对象的属性之一,则返回该属性的值。例如, getattr(x, ‘foobar’) 等同于 x.foobar。如果指定的属性不存在,且提供了 default 值,则返回它,否则触发 AttributeError。这一句最重要 getattr(x, ‘foobar’) 等同于 x.foobarhasattr(object, name)该实参是一个对原创 2022-04-08 16:26:30 · 788 阅读 · 0 评论 -
django+mysql数据库基于docker部署(腾讯云)系列文章2
https://blog.youkuaiyun.com/weixin_45631815/article/details/123664339?spm=1001.2014.3001.5502其他配置同前文修改配置文件settingDATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'django_app', 'USER': 'root', 'PASSWO原创 2022-03-22 20:26:47 · 1651 阅读 · 0 评论 -
global和nolocal区别(python)
分析globalname = 'root'def outer(): ''' inner一个闭包函数 ''' name = "武沛齐" def inner(): # 获取全局变量为 # root global name # 修改全局变量为 # 123 name = 123 inner() # 优先获取当前区域函数内的值 print(name) # 武沛齐outer()# 输出的值为修改后的全局变原创 2022-03-19 10:41:32 · 664 阅读 · 0 评论 -
functools 方法的使用
获取函数名(原函数)import functoolsdef C(func): @functools.wraps(func) def inner(*args, **kwargs): return func(*args, **kwargs) return inner@Cdef hand(): passhand()print(hand.__name__) # hand获取的是调用函数名def C(func): def inner(*arg原创 2022-03-19 09:46:36 · 213 阅读 · 0 评论 -
python map、reduce、filter区别
# map做每个元素操作def f(x): return x*xr=map(f,[1,2,3,4,5,6,7,8,9])list(r)list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))# reduce函数 与下一个元素做累计from functools import reducedef add(x,y): return x+yreduce(add,[1,2,3,4,5])# filter函数 过滤def is_odd(n):原创 2022-03-09 14:07:59 · 286 阅读 · 0 评论 -
python通过身份证或出生日期获取年龄
class GetInformation(object): def __init__(self, id): self.id = id self.birth_year = int(self.id[6:10]) self.birth_month = int(self.id[10:12]) self.birth_day = int(self.id[12:14]) def get_birthday(self): # 通原创 2022-03-07 15:51:54 · 1719 阅读 · 0 评论 -
pandas使用sql GROUP_CONCAT方法
# 方法一 transform 单字段 (性能佳)df[df['付款方式']=='支付宝'][['付款人电话','被保险人']].groupby(["付款人电话"]).transform(lambda x:"和".join(x))# 方法二 apply 多字段df[df['付款方式']=='微信'].groupby(["付款人电话"]).apply(lambda x:"和".join(x['被保险人']))...原创 2022-03-01 10:15:55 · 825 阅读 · 0 评论 -
pandas map transform apply
map、transform 性能优于apply,能用map、transform 不用apply# 映射df.gender.map({'F':0, 'M':1})# lambda 函数df.weight.map(lambda x:x+4)df.weight.transform(lambda x:x+4)原创 2022-02-07 20:44:43 · 631 阅读 · 0 评论 -
UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xfe in position 198369: illegal multibyte sequenc
使用gb18030可以解决,gb18030比gbk范围更加广python支持的编码https://docs.python.org/3/library/codecs.html#standard-encodings百度参考https://baike.baidu.com/item/GB18030/3204518原创 2022-01-23 10:22:25 · 905 阅读 · 0 评论 -
python pandas映射制作和分组累计求和
js['rqlb']=js['rqlb'].map({"A":"职工", "B":"居民"})# map({"A":"职工", "B":"居民"}) A 为列表的内容,职工为映射的内容# https://zhuanlan.zhihu.com/p/100064394output.groupby(['yxzjhm'])['自费自理'].cumsum()# 分组累计求和# https://cloud.tencent.com/developer/article/1737664...原创 2021-08-11 15:08:23 · 394 阅读 · 0 评论 -
Pandas、SQL获取当天的日期
方法一:--获取某一天的数据方式--第一步先将jsrq(2008-09-08 22:23:00)转换为2008-09-08格式,通过data_format函数。最后通过where进行查找当天的数据SELECT COUNT(date_format(jsrq,'%Y-%m-%d')) FROM js WHERE date_format(jsrq,'%Y-%m-%d')='2021-05-12'方法二:通过pandas读取数据,然后进行对2008-09-08 22:23:00进行切割,获取第一部分的数原创 2021-06-18 14:13:08 · 561 阅读 · 0 评论 -
报错Try using .loc[row_indexer,col_indexer] = value instead
SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.Try using .loc[row_indexer,col_indexer] = value instead # 用loc 方法来修改值的话不会进行报错, loc[行条件,列名] 进行修改值 summary.loc[summary['身份证号码']=='****','year']='1974' summ原创 2021-06-04 15:00:55 · 4541 阅读 · 0 评论 -
pandas.to_excel列名不需要设置
df.to_excel('1.xlsx',header=None)设置header为None即可原创 2021-05-24 08:43:52 · 2188 阅读 · 0 评论 -
UserWarning: Boolean Series key will be reindexed to match DataFrame index.
解决方法是两个并列的话,写在一起df[(df['******'].str.match('^??'))&(~df['*****'].str.match('^????'))]原创 2021-05-11 09:08:55 · 1200 阅读 · 0 评论 -
pandas读取xls文件
import pandas as pddf=pd.read_excel('文件名.xls')原创 2021-05-07 11:03:38 · 6688 阅读 · 2 评论 -
numpy时间运算方法
# 创建数据的类型class dtype(object): def __init__(self,obj,align=False,copy=False): passclass iinfo(object): def __init__(self,int_type): pass def min(self): pass def max(self): passimport numpy as npa=np.dtype.原创 2021-04-28 14:31:10 · 697 阅读 · 0 评论 -
两个numpy.nan是不相等的
import numpy as npprint(np.nan == np.nan) # Falseprint(np.nan != np.nan) # True原创 2021-04-28 13:55:30 · 473 阅读 · 0 评论 -
python @property的使用
'''python 的class @property作用是可以再调用images不用加(),而且可以做到让用户无法修改'''class DataSet(object): def __init__(self): self._images = 1 self._labels = 2 #定义属性的名称 @property def images(self): #方法加入@property后,这个方法相当于一个属性,这个属性可以让用户进行使用,而且用户有没.原创 2021-04-28 10:19:35 · 151 阅读 · 0 评论 -
pandas数据格式处理
原创 2021-04-25 17:44:37 · 282 阅读 · 0 评论 -
python类使用小案例
"""新增待办;删除已有的待办;标记一个待办为已完成;查看所有待完成和已完成的待办,并且能够区分展示。"""from os.path import existsfrom IPython.display import clear_outputclear_output()# 实现待办管理class Task: def __init__(self,text): self.text=text self.status='未完成' def mark_.原创 2021-04-23 21:47:41 · 138 阅读 · 0 评论 -
python类的使用实现增删数据
class Person: def __init__(self,name,age,gender): self.name=name self.age=age self.gender=gender def introduce(self): print("Hello,我是"+self.name) print("我今年"+str(self.age)+"岁") print("另外,我是"+self.gen.原创 2021-04-23 20:46:13 · 109 阅读 · 0 评论 -
python列表式去除空值
直接讲方法。[x for x in res if len(x)>1]通过列表式,判断字段长度来实现词功能。原创 2021-04-20 16:15:21 · 323 阅读 · 0 评论