随笔分类 - Python
摘要:一、需求 因跑模型需要,根据入参,自动设定训练集、测试集、生产集周期。 例如:本月输入“202203”,上月即为“202202”,次月为“202204”。 二、实操 import time, datetime, calendar # 上月 def last_month(month): month =
阅读全文
摘要:一、需求 本打算使用 Pandas 中的 describe() 函数查看一些数据的分布情况,显示为科学计数法,不方便对比。 data_train[['hold_day','hold_cnt']].describe() ''' hold_day hold_cnt count 1.492277e+06
阅读全文
摘要:一、需求 统计传入的字符串,各个字符的出现次数,返回一个 dict 结果。 二、实操 1.方法1:迭代计算 # 方法一:迭代计算 def char_count(strings: str): result = {} strings = strings.lower() for i in strings:
阅读全文
摘要:PyHive 是 Python 语言编写的用于操作 Hive 的简便工具库。 一、PyHive安装 # Liunx系统 pip install sasl pip install thrift pip install thrift-sasl pip install PyHive # Windows系统
阅读全文
摘要:一、需求 需要查找 DataFrame 中存在特殊字符的行列。 二、实操 可以利用 re 模块中的查找实现该需求。 1.构建测试数据集 import pandas as pd df = pd.DataFrame({ 'id':range(5), 'name':['ABC','-','B*','NA'
阅读全文
摘要:类似于另外一篇文所讲,仅记录一下代码备用。 Python学习笔记:给定邮编,判断区域 1.需求 提取第1个元素。 2.实操 import pandas as pd df = pd.DataFrame({ 'name':['[abc,123,456]','[abcd,123,456]','[1bcas
阅读全文
摘要:一、需求 生成一个数据框,行数不确定,有两列:a-z循环,1-2循环,可根据需要指定数据行数。 二、实操 # Pandas生成任意行的循环取值数据 import pandas as pd import string import itertools string.ascii_letters # 'a
阅读全文
摘要:一、题目 a 为原始的列表,b 为统计后的结果。 a = [1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1] b = [0, 1, 2, 0, 1, 2, 0, 1, 0, 0, 1, 2, 3, 4, 5] 二、解答 利用指针的方式,判断前一位与后一位是否相
阅读全文
摘要:一、背景 以前都是用本机自带的 Jupyter Notebook(Anaconda3) 直接打开服务,会自动弹出浏览器,并可进行 Python 编程。 所弹出的浏览器地址为:localhost:, 无法分享给局域网内其他电脑访问。 遂折腾一番。 二、无界面启动 打开 cmd 执行以下命令。 # 获取
阅读全文
摘要:一、%who魔法函数 在 Jupyter Notebook 中使用魔法函数,可以查看当前运行环境中所有自定义的全局变量名,包括:变量、自定义函数、引进的模块等。 % who # NamespaceMagics accuracy_score auc blk 还可以通过指定类别进行筛选。 %who Da
阅读全文
摘要:一、背景 机器学习中针对分类特征常常需要进行编码处理,将文本类型的数据转换为数值类型。 例如:将男女转换为0/1标签,以便模型训练。 二、测试 1.构建测试数据集 import pandas as pd import numpy as np df = pd.DataFrame({ 'Sex': ['
阅读全文
摘要:一、介绍 自然排序顺序(Natural sort order)不同于默认排序,针对字符串逐个比较对应位置字符的 ASCII 码方式,更关注字符串实际相对大小意义的排序。 **例如:**需要根据年增长率(50%)对数据列进行排序,此时无法直接排序。 可以借助第三方库(natsort)进行排序。 二、n
阅读全文
摘要:一、介绍 Pandas 的基础结构分为两种: 数据框 DataFrame 序列 Series 数据框(DataFame)是拥有轴标签的二维链表,类似于 Excel 中的行列关系。 列标签为列名,行标签为索引。 iterrows() 是在数据框中的行进行迭代的一个生成器,返回每行的索引以及一个包含行本
阅读全文
摘要:一、背景 近期想对比两个不同数据集的数据分布时,遇到一个问题:数据集同时包括离散、连续、时间等不同类型特征。 使用 seaborn.kdeplot 报错,仅只能针对数值型特征进行统计。 遂诞生一个需求:针对数据框,筛选指定数据类型的列。 二、select_dtypes介绍 使用语法为: data.s
阅读全文
摘要:一、安装 数据挖掘比赛最常用预测、分类模型:LGB、XGB、CatBoost、NGB、ANN等。 1.lightgbm 微软开源的 lightgbm 越来越流行。 目前比赛数据量越来越大,想要获得一个比较好的预测精度,同时又要减少内存占用以及提升训练速度,lightgbm 是一个不错的选择,其可达到
阅读全文
摘要:一、需求 例如有一个数据框列名分别为:a、b、c、d,要求转换为:d、c、b、a。 二、实操 建立测试数据集 # 建立测试数据集 df = pd.DataFrame({'a':range(5), 'b':np.random.randn(5), 'c':np.random.randn(5), 'd':
阅读全文
摘要:一、丑数 丑数(ugly number): 把只包含质因子2、3和5的数称作丑数,例如:6、8都是丑数,但7、14不是。 习惯上把1当做第一个丑数。 二、判断方法 根据丑数的定义,0和负整数一定不是丑数。 当n大于0时,如果n是丑数,那么n可以写成以下形式: n = 2^a * 3^b * 5^c
阅读全文
摘要:1.只运行1次? # 只运行一次? for i in range(4): print(i) i = 10 # 答案:运行4次,输出0123 # 原理:Python循环方式,迭代器range(4)提前被解包并赋值目标列表 2.Hash # Hash some_dict = {} some_dict[5
阅读全文
摘要:一、题目 给定一个包含 [0, n] 中 n 个数的数组 nums,找出 [0, n] 这个范围内没有出现在数组中的那个数。 二、思路 1.方法一:排序 将数组排序之后,即可根据数组中每个下标处的元素是否和下标相等,得到丢失的数字。 2.方法二:哈希集合 使用哈希集合,可以将时间复杂度降低到 O(n
阅读全文
摘要:一、使用datetime.quarter判断 # Python月份判断季度 import datetime import pandas as pd df['quarter'] = df['date'].dt.quarter 二、字典手动判断 data = pd.DataFrame({'month':
阅读全文