![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
工作笔记
文章平均质量分 71
讲故事的猫猫
微博:小说家讲故事的猫猫
知乎:讲故事的猫猫
展开
-
样本不平衡的处理方法
样本不平衡其实的主要思想就是过采样和欠采样,但是由于在复制少量标签的样本或者筛选大量标签的样本方法不同衍生出了不同的处理手段1.随机过采样:复制标签少的样本使得好坏比满足建模需要2.随机欠采样:抽取标签多的样本使得好坏比满足建模需要 (会丢失样本信息)3.EasyEnsemble:标签多的样本进行n份,每份都和标签少的全部样本组合成n份训练样本,利用集成学习训练n个弱分类器(原论文是用adaboost框架,当然用其他框架也是可以的)4.BalanceCascade:对标签多的样本进行欠.原创 2021-02-23 17:52:14 · 1957 阅读 · 0 评论 -
逻辑回归梳理
什么是逻辑回归,这里引用我觉得在知乎某大佬说的一句很精辟的话https://zhuanlan.zhihu.com/p/103459570逻辑回归假设数据服从伯努利分布,通过极大似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。...原创 2021-02-18 10:39:40 · 285 阅读 · 0 评论 -
pivot_table 源码解析
所以为什么pivot_table会快呢?首先concat在不断拼接的过程耗时确实是越来越长的,这个底层暂时没有了解但是pivot_table是怎么做长表宽表的转换呢?其实pivot_table是一个透视表,他之所有能做长宽表的数据转换还是有一定局限性的源码:https://github.com/pandas-dev/pandas/blob/v1.0.4/pandas/core/reshape/pivot.py#L25-L186from typing import TYPE_CHECKI原创 2020-06-11 11:45:58 · 541 阅读 · 0 评论 -
长表宽表的转换
原文传送门:https://www.cnblogs.com/zlslch/p/8644585.html处理长表和宽表类的转换的时候之前总是自己写底层但是底层写得太烂了,转换的速度总是不满意,pandas 的不断concat过程耗费的时间太久然后就灵机一动作为最热门的语言,python会不会有这种长表宽表的转换呢?结果有的。。。。import pandas as pdimport numpy as npmydata=pd.DataFrame({"Name":["苹果".原创 2020-06-11 10:26:42 · 1653 阅读 · 0 评论 -
sublime的正则表达式分组
正则表达式其实都一样,不同语言不同工具取分组的手段不同。sumlime取分组是用\1 类似python的group(1)如 abc可以用 a(.*) 来匹配a\1c来表示在括号内的分组保留下来并在后面加上c结果 abcc\2就是第2个分组,依次类推。...原创 2020-05-09 14:14:36 · 1087 阅读 · 0 评论 -
pandas 字符串包含判断
今天同事问我如果我要判断pandas中某列中的值是否包含某个特定字符串该如何做。我以前写过但是楞了一下,因此好好记录下来df["columns_1"] = df["columns"].apply(lambda x: x.upper()) #由于同事这个不区分大小写,所以全部转成大写来匹配df[df["columns_1"].str.contains("a")]#这样只要...原创 2020-03-09 16:35:57 · 23519 阅读 · 0 评论 -
pandas, datetime 格式化输出日期
raw_data["TradeDate"].head()0 2020-02-22 14:01:23.4510001 2020-02-20 16:40:56.1900002 2020-02-20 16:11:16.4200003 2020-02-22 00:30:43.4510004 2020-02-24 05:35:09.783000Name: Tra...原创 2020-03-06 16:51:48 · 5107 阅读 · 0 评论 -
np.timedelata64计算时间差
由于这个用法老是忘记我就还是写下来记录一下。在python生成时间差这个值的时候,用pd.to_datetime相减有的时候后面会带一个单位,有的是days,有的是时分秒。再用字符串处理也是可以的,但是np.timedelta64可以很方便的解决这个问题。df["TradeTimeDif"] = (pd.to_datetime(df["Standard_Time"]) - pd.to...原创 2020-03-04 10:27:07 · 4052 阅读 · 0 评论 -
pandas生成连续日期
因为量化模型有的时间没有发生交易,在订单系统中时间有时候会有断点。需要生成连续的时间序列。>>> pd.date_range(start='2020-02-20 12:24:44', end='2020-02-20 12:25:10',freq='S')DatetimeIndex(['2020-02-20 12:24:44', '2020-02-20 12:24:45'...原创 2020-02-28 17:05:41 · 1020 阅读 · 0 评论 -
Pandas移动平均类指数加工
temp = pd.DataFrame([1,2,3,4,5],columns=["test"])建立一个测试数据>>> temp test0 11 22 33 44 5pandas计算移动指数挺方便的,用rolling属性就可以。>>> temp["test"].rolling(2,...原创 2020-02-28 14:17:09 · 486 阅读 · 0 评论 -
数字字符串补0方法
有的时候想生成连续的数字字符串,但是生成数字的时候前面没有补上0用下面这个方法就可以补0了i = str(i)i = i.zfill(4)for i in range(10): print(str(i).zfill(4))0000000100020003000400050006000700080009...原创 2020-02-28 14:04:28 · 2570 阅读 · 0 评论 -
mysql 分组字符串拼接——group_concat
对分组的user_id 进行dtype的拼接原创 2020-01-08 10:48:29 · 364 阅读 · 0 评论 -
os库的小运用
os.getcwd() 可以获取当前代码的存放路劲不太习惯用mac。。。os.listdir(path) 可以查看path下面的所有文件名原创 2020-01-08 09:45:25 · 95 阅读 · 0 评论 -
presto 中格式转换的用法
cast(目标字段 as 目标格式)原创 2020-01-07 11:50:02 · 3968 阅读 · 0 评论 -
排序——插入排序
类似选择排序,插入排序是从第一个项目开始取,丢进一个子序列。然后每次插入下一个值,将其插入到子序列的正确位置。def insertSort(alist): for i in range(1,len(alist)): currentValue = alist[i] position = i while position ...翻译 2019-07-11 20:19:13 · 99 阅读 · 0 评论 -
排序——选择排序
选择排序是遍历整个表,然后做一次交换,每次遍历找到最大值,将其放到正确的位置。类似以下的过程def selectSort(alist): for i in range(len(alist)-1,0,-1): #因为每次遍历一次列表之后,最后一项无许再去作比较。而每次遍历也只需要比较n-1次 maxValuePosition = 0 fo...原创 2019-07-11 19:58:16 · 172 阅读 · 0 评论 -
排序算法——冒泡排序
冒泡排序其实就是多次遍历列表,比较相邻的两项交换那些无序的项目。放上图会更好理解吧第一次遍历结束之后可以看到93这个最大值就放在了最末尾的位置,那么93固定下来了,就开始对93之外的序列做遍历。第二大的值便会固定在导数第二的位置。依次类推完成排序。def bubbleSort(alist): for i in range(len(alist)-1,0,...原创 2019-07-10 00:27:09 · 172 阅读 · 0 评论 -
csv文件中有引号导致变量读取不完整 (sas proc import)
用PROC IMPORT这一步的时候的时候由于内容以单引号开头,导致后面的变量无法读取。解决方法:1、在csv文档中去掉单引号或者在结尾加上一个单引号。2、利用Data...原创 2018-06-14 16:11:36 · 3113 阅读 · 0 评论 -
SAS 逐行赋值给宏函数
拿到一组数据,csv文件开头为数字,比如000001.csv。想把csv文件用代码批量导入到sas数据集中就有一点小的问题。命名,sas数据集开头不能以数字开头。第一,利用 x “dir ....... > ......\data_list.csv” 把文件目录下的所有文件导成了一个list,存在了csv文件中。第二,经过筛选和处理,获取了一个叫list的sas数据集,里面第一列是文件名...原创 2018-06-15 15:05:26 · 3578 阅读 · 0 评论 -
pandas中shift和diff函数关系
通过?pandas.DataFrame.shift命令查看帮助文档[python] view plain copySignature: pandas.DataFrame.shift(self, periods=1, freq=None, axis=0) Docstring: Shift index by desired number of periods with an optional ti...转载 2018-06-15 17:51:33 · 483 阅读 · 0 评论 -
SAS分类计数
2.9.5 HAVING数据子集proc sql; select Region,count(*) as count from sashelp.shoes group by Region having count(*)>50;quit;原创 2018-07-03 10:22:38 · 6947 阅读 · 0 评论 -
SAS画频数统计图
proc sgplot data=lib;histogram col/scale=count;yaxis label="数量";title "取标题";run;原创 2018-07-10 14:51:16 · 7981 阅读 · 0 评论 -
SAS获取列名及相关信息
ods trace on;proc contents data = lib.dataods output Variables原创 2018-07-04 18:09:36 · 4140 阅读 · 0 评论 -
SAS统计一个表中的变量缺失值
proc format;value $missfmt ' '='Missing' other='Not Missing'; /*一定要用空格*/value missfmt . ='Missing' other='Not Missing'; run; proc freq data=yourdata; format _CHAR_ $missfmt.; tables _C...原创 2018-07-05 09:53:13 · 7751 阅读 · 1 评论 -
SAS 删除重复值观测
data test;input a b c;datalines;1 1 31 2 31 1 41 3 41 1 5;run;proc sort data = test nodupkey;by a b;run;选取a,b完全一致的观测删除。_all_可以删除两个所有变量完全一致的观测。...原创 2018-07-05 11:20:31 · 7712 阅读 · 0 评论 -
python 字符串转变量
#假设我们有一个变量名为testthe_string = "test"the_var = locals()[the_string]#这个时候test的值就赋给了the_var原创 2018-10-08 11:00:19 · 3531 阅读 · 0 评论 -
LINUX系统创建用户的问题
当我直接创建用户完了之后发现命令行有点诡异。是不是长得不一样?tab键什么的都用不了。萌新在探索LINUX的道路上吃了很多亏。只要在后面加上 usermod -s /bin/bash test就可以了 ...原创 2018-11-07 15:11:19 · 337 阅读 · 0 评论 -
pandas几个有用的操作
a是一个DataFrame结构a[a["col_name"].isin(select_list)]如果a的col_name列中存在于select_list中的数据都会被抓出来a[a["col_name"].isnull()]a[a["col_name"].notnull()]选取空值和非空值的数据dummy_table = pd.get_dummies(a["col_n...原创 2019-03-05 11:36:10 · 248 阅读 · 0 评论 -
读取目录下的所有文件
import osroot_dir = r"......"file_list = os.listdir(root_dir)#已经读取了文件列表了for file in file_list: file_dir = os.path.join(root_dir,file) #已经捕获了单个文件了,需要如何操作就随意了 #主要运用于批量将一个文件夹的数据进行相似的操作...原创 2019-03-05 11:39:31 · 804 阅读 · 0 评论 -
Pandas按行列求和
#按行求和df['row_sum'] = df.apply(lambda x: x.sum(), axis=1)#按列求和df.loc['col_sum'] = df.apply(lambda x: x.sum())原创 2019-03-06 15:16:01 · 22602 阅读 · 3 评论 -
spark DataFrame和pandas DataFrame互相转换
values = pandas_df.values.tolist()columns = pandas_df.columns.tolist()spark_df = spark.createDataFrame(values, columns)pandas_df = spark_df.toPandas()原创 2019-04-09 13:25:56 · 2695 阅读 · 0 评论 -
Hash查找
Hash表,哈希表是一种容易查找到数据存储项的集合。哈希表的每个位置通常称为1个槽,可以容纳1个项。例如我们有一个为0的槽,1的槽,2的槽。。。每个槽初始化为容纳为None项和槽之间的映射方法称为hash函数,可以理解为数据和索引之间有一个映射关系。假设使用余数法,数据的余数作为项的索引。54 % 11 = 10其中54位数据,10为哈希值,也就是索引对于数据预处理...原创 2019-07-09 20:56:24 · 915 阅读 · 0 评论 -
获取路径下的所有文件名
def get_all_filename_list(path): file_name_list = os.listdir(path) return file_name_listpath 路径前记得加r表示原始路径,不然会报错decode bytes in position 2-3: truncated \UXXXXXXXX escape如 path = r'C:\Users\ttt...原创 2018-06-04 13:31:15 · 1706 阅读 · 0 评论