
技术综合
文章平均质量分 61
技术基础、心得、tips
domodo2012
这个人很懒,什么都没留下,除了那点代码。
展开
-
使用 ipdb 调试回调函数
回调函数是指一个函数执行完后,调用另外一个函数的过程。一般步骤是,回调函数作为参数传递给原始函数,原始函数执行完自己的逻辑后,自动调用回调函数并将自己的执行结果作为参数传递给回调函数。根据不同的用法,回调函数可能在主线程/进程中,也可能在其他线程/进程中。有时候,这会给调试回调函数带来一点麻烦,比如,在回调函数内打的断点,在调试模式下死活无法触发。(是的,在pycharm中遇到这个情况的就是我。。。原创 2024-05-06 15:50:44 · 916 阅读 · 1 评论 -
【迅投qmt系列】2、历史数据获取
介绍迅投qmt获取历史行情数据的方法原创 2024-04-24 11:33:51 · 3663 阅读 · 0 评论 -
wsl2 使用经验
wsl2 使用经验原创 2023-09-29 11:41:20 · 641 阅读 · 0 评论 -
数据中台系列3:celery 安装与使用 window 篇
window 中使用 celery,用法层层递进原创 2023-07-31 18:06:38 · 1732 阅读 · 1 评论 -
数据中台系列2:rabbitMQ 安装使用之 window 篇
window 环境中安装 RabbitMQ原创 2023-07-31 18:01:10 · 2386 阅读 · 0 评论 -
数据中台系列1:redis 安装使用之 windows 篇
window 系统中安装 redis原创 2023-07-31 18:00:31 · 639 阅读 · 0 评论 -
快速检查 dataframe 中某个 [行, 列] 上是否有值
快速检查 dataframe 中某个 [行, 列] 上是否有值原创 2023-02-23 14:21:10 · 2790 阅读 · 0 评论 -
python 的异常处理
python 的异常处理转载 2022-12-19 20:14:15 · 232 阅读 · 0 评论 -
[转载] pandas时间戳转换中遇到的问题
pandas时间戳转换中遇到的问题。时间戳的不同长度有不同处理方法转载 2022-12-02 20:24:55 · 501 阅读 · 0 评论 -
matplotlib 文字标注(text、annotate)例程
例程说明 matplotlib 中 annotate 标注的使用原创 2022-10-30 12:24:22 · 1575 阅读 · 0 评论 -
高速向 postgreSQL数据库中写入数据
向postgreSQL数据表中写入数据有多种方法,这里记录效率相对比较高的两种。转载 2022-10-04 23:52:07 · 1470 阅读 · 0 评论 -
notepad++ 的字符串处理小方法
notepad++ 的字符串处理小方法:批量在行头行尾添加文本内容,将多行数据合并成一行转载 2022-06-15 17:50:11 · 1646 阅读 · 0 评论 -
pyecharts 中使用 make_snapshot 时报错 Can‘t find variable 的处理
pyecharts 中使用 make_snapshot 时报错 Can't find variable 的处理原创 2022-04-30 20:58:07 · 6458 阅读 · 7 评论 -
python中连接oracle远程数据库的方法介绍
python 中连接 oracle 远程数据库转载 2022-02-24 09:46:05 · 1221 阅读 · 0 评论 -
pandas 获取不符合条件/不包含某个字符串的dataframe
pandas 获取不符合条件/不包含某个字符串的 dataframe转载 2021-11-10 01:41:55 · 2499 阅读 · 0 评论 -
WSL、influxdb的安装过程记录
1、wsl是啥,如何安装2、influxdb是啥,如何安装3、一些安装过程中的小坑原创 2021-03-12 09:02:21 · 652 阅读 · 0 评论 -
matplotlib 画图时中文乱码问题的解决
matplotlib 画图时中文乱码,根据本地是否有相关字体,提供了两种解决方案。转载 2021-02-24 14:50:31 · 444 阅读 · 0 评论 -
pyecharts 在 jupyter notebook 中不显示图片的解决方案
pyecharts 在 jupyter notebook 中不显示图片的解决方案原创 2021-02-23 14:58:06 · 3213 阅读 · 0 评论 -
dataframe.query() 筛选 tips
dataframe.query() 筛选数据的一些操作原创 2021-02-02 21:06:50 · 2612 阅读 · 0 评论 -
groupby 中如何显示 tqdm 的进度条?
在循环时调用 tqdm 显示进度已经是一个常规操作,常见的方式是for ii in tqdm(...): ...while 循环的情况类似,while icnt in tqdm(range(n)): ... icnt += 1这里记录没有显式循环时,在 groupby 中的用法:import pandas as pdimport numpy as npfrom tqdm import tqdmdf = pd.DataFrame(np.random.randint(0, 100,原创 2021-02-01 19:28:13 · 994 阅读 · 0 评论 -
如何调试 RuntimeWarning ?
python 代码运行时,有时会报 RuntimeWarning,但一般情况下,debug 功能此时无法在对应的语句暂停,如何能够像调试 error 一样调试 RuntimeWarning 呢?办法一:如果报警是由 numpy 的函数发出,则在脚本开头加上以下代码,强制 numpy 在遇到所有警报时都暂停。from numpy import seterrseterr(all='raise')之后在报警的地方设置 try…except… 断点,就可以捕捉这个报警。办法二:如果报警不是由 nu原创 2021-02-01 14:46:16 · 2531 阅读 · 0 评论 -
dataframe 中的多层索引
1、生成两层行索引、列索引的样本数据1)生成 DataFrameimport pandas as pdimport numpy as nppd.set_option('display.max_columns', 1000)pd.set_option('display.width', 1000)pd.set_option('display.max_colwidth', 1000)df = pd.DataFrame(np.random.randint(80,150,size=(9, 9)),原创 2021-01-16 13:41:14 · 4582 阅读 · 0 评论 -
非线性规划(scipy.optimize.minimize)
1、minimize() 函数介绍在 python 里用非线性规划求极值,最常用的就是 scipy.optimize.minimize()。[官方介绍点这里](Constrained minimization of multivariate scalar functions)使用格式是:scipy.optimize.minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constra原创 2021-01-13 00:17:04 · 3272 阅读 · 2 评论 -
警告处理 RuntimeWarning: Degrees of freedom <= 0 for slice. keepdims=keepdims)
1、问题对全为 nan 的数组进行统计计算(比如 np.nanstd())时,会报错:In[87]:import numpy as nparr = [[5.0, 1.0, 6.0, np.nan], [2.0, 2.0, 1.0, np.nan], [np.nan, np.nan, np.nan, np.nan], [3.0, 4.0, np.nan, np.nan], [np.nan, np.nan, np.nan, np.nan]]np.nanstd(arr, axis=1)Out[8原创 2021-01-06 13:57:49 · 7256 阅读 · 0 评论 -
numpy中的 nan 和 inf,及其批量判别、替换
1、概念nan:not a number (非数值)inf:infinity (inf:正无穷,-inf:负无穷 ),下文中的 inf 包含了两种无穷numpy 中,nan 和 inf 的类型都是 float 。2、性质2-1、多个 nan 之间的比较,地址相等,值不相等import numpy as npprint(f'nan 之间的值比较 {np.nan == np.nan}')print(f'nan 之间的地址比较 {np.nan is np.nan}')Out[18]:na原创 2021-01-06 10:50:45 · 12173 阅读 · 1 评论 -
对列表中的元素进行筛选
0.摘要本文主要介绍根据给定条件对列表中的元素进行筛序,剔除异常数据,并介绍列表推导式和生成表达式两种方法。。1.列表推导式(list comprehension)mylist = [1, 2, 3, -4, -5, 6, 7, 8, 9]positive_list = [n for n in mylist if n > 0 ]print(positive_list)Out[12]:[1, 2, 3, 6, 7, 8, 9]优点:简单。列表推导式的实现非常简单,在数据量不大的情况下转载 2021-01-03 21:11:44 · 1546 阅读 · 0 评论 -
从 array 中取元素,及同时取元素时 IndexError 报错的处理
1、取数arr = np.arange(24).reshape(2, 4, 3)arrOut[52]: array([[[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8], [ 9, 10, 11]], [[12, 13, 14], [15, 16, 17], [18, 19, 20], [21, 22, 23]]])从 array 中取单个元素,直接用下标原创 2021-01-03 21:04:43 · 557 阅读 · 0 评论 -
numpy中处理含nan数据的统计函数及其效率
numpy 库中的一些统计函数,它们在遇到含 nan 的数据时都无法正常使用,需要换成可用的同名函数(即在函数名前加“nan”)。1、相关函数1.1、最大值 max()、nanmax() / 最小值 min() nanmin()沿指定轴返回一个数组的最小 / 大值。numpy.max(a, axis=None, out=None, keepdims=)参数:a - array_like ,数组或者可以转化成数组的对象axis - 无 None(默认)、整型 int、元组 tuple;沿轴线方原创 2021-01-03 20:08:33 · 1562 阅读 · 4 评论 -
Python环境下的8种简单线性回归算法
来自:公众号 机器之心 | 责编:乐乐本文中,作者讨论了 8 种在 Python 环境下进行简单线性回归计算的算法,不过没有讨论其性能的好坏,而是对比了其相对计算复杂度的度量。GitHub 地址:github.com/tirthajyoti/PythonMachineLearning/blob/master/Linear_Regression_Methods.ipynb(备注:该地址已经失效,新地址是:https://github.com/tirthajyoti/Machine-Learning-转载 2021-01-02 00:10:37 · 937 阅读 · 0 评论 -
在 优快云 的 MarkDown 中编辑数学公式
1、公式定界符与关键字优快云-MarkDown编辑器使用的公式定界符为和和和$,单美元符号包围的是行内公式,双美元符号包围的是块公式。示例:$\gamma(n) = (n-1)! \quad\forall n \in\mathbb N$效果:γ(n)=(n−1)!∀n∈N\gamma(n) = (n-1)! \quad\forall n \in\mathbb Nγ(n)=(n−1)!∀n∈N示例:$$ x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$效果:x=原创 2020-12-27 18:58:24 · 890 阅读 · 0 评论 -
将小 df 中的数据快速并入大 df 中(2020-12-28 更新)
需求描述有一大一小两个dataframe。其中 df_big 是每个股票每天的若干个日数据,行索引为 [股票代码,交易日期] 的两层。In[37]: df_big.shapeOut[37]: (90772, 6)In[38]: df_big.head()Out[38]: close pct_chge ... cap turn_ratesymbol tdate ...原创 2020-12-24 14:36:07 · 416 阅读 · 0 评论 -
合并 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({'one'转载 2020-12-23 16:31:30 · 2462 阅读 · 1 评论 -
给定时间戳,匹配与它最接近的旧值(merge_asof 等两个方法)
merge_ordered:函数允许组合时间序列和其他有序数据。 特别是它有一个可选的fill_method关键字来填充/插入缺失的数据。import pandas as pdleft = pd.DataFrame({'k': ['K0', 'K1', 'K1', 'K2'], 'lv': [1, 2, 3, 4], 's': ['a', 'b', 'c', 'd']})right = pd.DataFrame({'k':转载 2020-12-23 10:27:05 · 3219 阅读 · 1 评论 -
瞧瞧,这样的代码才叫 Pythonic
来源:Python编程时光Python由于语言的简洁性,让我们以人类思考的方式来写代码,新手更容易上手,老鸟更爱不释手。要写出 Pythonic(优雅的、地道的、整洁的)代码,还要平时多观察那些大牛代码,这里明哥收集了一些比较常见的 Pythonic 写法,帮助你养成写优秀代码的习惯。01. 变量交换交换两个变量的值,正常都会想利用一个中间临时变量来过渡。tmp = aa = bb = tmp能用一行代码解决的(并且不影响可读性的),决不用三行代码。a,b = b,a02. 列表推导转载 2020-12-22 10:22:58 · 111 阅读 · 0 评论 -
取日期序列每半年、季度、月的最后一天
df 是保存日数据的 dataframe,格式如下:想取每个月、季度、半年最后一天: df['year-month'] = [str(i)[0:7] for i in df.index] if frequency == 'month': new_index = df.drop_duplicates('year-month').index elif frequency == 'quarter': df['month'] = [s原创 2020-12-21 22:17:42 · 1023 阅读 · 1 评论 -
稳健回归(Robustness regression)
最小二乘法的弊端之前文章里的关于线性回归的模型,都是基于最小二乘法来实现的。但是,当数据样本点出现很多的异常点(outliers),这些异常点对回归模型的影响会非常的大,传统的基于最小二乘的回归方法将不适用。比如下图中所示,数据中存在一个异常点,如果不剔除改点,适用OLS方法来做回归的话,那么就会得到途中红色的那条线;如果将这个异常点剔除掉的话,那么就可以得到图中蓝色的那条线。显然,蓝色的线比红色的线对数据有更强的解释性,这就是OLS在做回归分析时候的弊端。当然,可以考虑在做回归分析之前,对数据做预转载 2020-12-07 10:31:58 · 9142 阅读 · 0 评论 -
python字典:通过值反查键
方法一:通过键查值比较容易,通过值反查键就稍微麻烦点,这里给大家提供点思路。由于值是可以重复的,所以分成两种情况给大家展示:第一种是值唯一的情况直接构造列表,通过value的索引取对应的key。第二种是值不唯一的情况,需要通过for遍历出所有的索引然后查出所有对应的key。如果你需要打印所有满足查询值所对应的key,选第二种;如果你只需要打印首次出现查询值所对应的key,选第一种。代码如下:#假如值唯一mydisc = {'key1':'123', 'key2':'234', 'key3'转载 2020-12-06 00:37:49 · 1767 阅读 · 0 评论 -
pandas 的 to_datetime 转换日期格式很慢如何解决
从csv文件中读取数据后,要成列转换日期数据,使用 pd.to_datetime() 时,如果不指定转换方式,有时候会超级慢。此时可这么写:df.index=pd.to_datetime(df.index,format='%Y-%m-%d %H:%M:%S.%f')原创 2020-12-06 00:23:27 · 1075 阅读 · 0 评论 -
统一转换日期格式dateutil.parser.parse
背景:我有很多很多的日志数据,每个日志里面都有日期字符串,我需要将其转换为datetime格式。问题是,这些日志里的字符串格式五花八门,有2017-05-25T05:27:30.313292255Z,有2016-07-01T00:00:00以及其他各种我还没有看到的格式。开始我写了一长串的if else来判断格式,但是总有我漏掉的。最后上网一查,发现dateutil.parser.parse。可以不用我们指定格式,直接将字符串转换为datetime格式。import datetimeimport转载 2020-12-06 00:08:58 · 904 阅读 · 0 评论 -
python 使用小技巧(动态更新)
1、 找出含有特定字符串的行res=res[res['choice'].str.contains("<img")]2、找出第一个字符是 ‘9’ 的行res=res[res['choice'].str[0] == '9']原创 2020-12-06 00:07:58 · 343 阅读 · 0 评论