缺失值处理 - 获取一段时间内所有日期的列表 - (Python、MySQL)
有的时候做数据清洗的时候 , 如果表中数据在某一天没有记录,但是业务要求不能有缺失日期,那么就需要我们将这些缺失日期补上。这个前提就是我们先要有一张包含所有日期的列表(作为左表),供我们进行匹配(left join)进而补上缺失日期。
Python代码:
import datetimedef Date_interval_list(date_start = None,date_end = None):if date_start is None:date_start = '2000-01-01'if date_end is None:date_end = datetime.datetime.now().strftime('%Y-%m-%d')date_start=datetime.datetime.strptime(date_start,'%Y-%m-%d')date_end=datetime.datetime.strptime(date_end,'%Y-%m-%d')date_list = []date_list.append(date_start.strftime('%Y-%m-%d'))while date_start < date_end:date_start+=datetime.timedelta(days=+1)# 日期加一天date_list.append(date_start.strftime('%Y-%m-%d'))# 日期存入列表print(date_list)if __name__ == '__main__':Date_interval_list("2018-12-25", "2019-01-07")
运行结果:
['2018-12-25', '2018-12-26', '2018-12-27', '2018-12-28',
'2018-12-29', '2018-12-30', '2018-12-31', '2019-01-01','2019-01-02', '2019-01-03', '2019-01-04', '2019-01-05','2019-01-06', '2019-01-07']
MySQL代码:
DELIMITER $$
DROP PROCEDURE IF EXISTS create_calendar $$
CREATE PROCEDURE create_calendar (s_date DATE, e_date DATE)
BEGINSET @createSql = 'CREATE TABLE IF NOT EXISTS calendar (`date` date NOT NULL,UNIQUE KEY `unique_date` (`date`) USING BTREE)ENGINE=InnoDB DEFAULT CHARSET=utf8'; prepare stmt from @createSql; execute stmt; WHILE s_date <= e_date DOINSERT IGNORE INTO calendar VALUES (DATE(s_date)) ;SET s_date = s_date + INTERVAL 1 DAY ;END WHILE ; END$$
DELIMITER ;CALL create_calendar ('2018-12-25', '2019-01-07');
运行结果:
MySQL的运行结果是直接生成一张表calendar,表中包含日期间隔里的所有日期date。
以前总觉得MySQL的作用很小,大概就是存储数据 + 简单清洗 + 数据统计 ,以后要刮目相看了,就像刮目相看 Excel 一样。
缺失值处理 - 获取一段时间内所有日期的列表 - (Python、MySQL)相关推荐
- java 周几_java根据日期获取周几和获取某段时间内周几的日期
整理两个日期的方法. 根据日期获取当天是周几 /** * 根据日期获取当天是周几 * @param datetime 日期 * @return 周几 */ public static String d ...
- 原生js获取一段时间内每隔几分钟的时间数组
姊妹篇 原生js获取一段时间内每隔几天的时间数组 情况: 项目中有这么一个需求,输入开始时间.结束时间.时间间隔,获取一段时间内每隔几分钟的时间数组 接下来我必须现在网上找找有没有类似的稍微改改就好了 ...
- oracle获取一段时间内所有的小时、天、月
原文链接:http://blog.csdn.net/ld422586546/article/details/9626921/ 点击阅读原文 ------------------------------ ...
- Jquery获取一段时间内所有对应的日期,并获取日期对应的星期几。
本文是将已知的一段时间(已知开始时间,结束时间),获取这一段时间内所有的日期,包含开始时间,结束时间,并对应星期几. 1,获取一段时间的字符串,返回的是字符串,调用时在后面加, /*** 获取日期段所 ...
- php获取一段时间内的法定工作日
首先,需要自己在后台创建一个表 content_cooper 这个结构如下: CREATE TABLE `my_content_cooper` (`id` int(11) unsigned NOT N ...
- PHP获取一段时间内的每个周几, 每月几号, 遇到特殊日子就往后延
2016年11月1日 16:18:19 星期二 主要用到的函数是 strtotime() strtotime('+1 Tuesday', $timestamp) 获取下周二, 从时间戳$timesta ...
- python从云端数据库获取数据失败_使用%s的Python MySQL Connector数据库查询失败
使用%s的Python MySQL Connector数据库查询失败 我有一个基本程序,应该查询包含用户信息的数据库.我正在尝试为特定用户选择信息并将其打印到控制台. 这是我的代码:import my ...
- java 时间段内月份_java获取某段时间内的月份列表
/**获取两个时间节点之间的月份列表**/ private static List getMonthBetween(String minDate, String maxDate){ ArrayList ...
- js获取一段时间内工作日的天数
代码 function workday_count(start, end) {let count = 0;let current = start;while (current< end) {co ...
最新文章
- mysql字段中去掉括号
- python中json和字典相互转化
- 合肥将全力打造“城市超脑” 创建智慧城市典范
- Android如何在java代码中设置margin
- java 定时删除_Java编写定时删除文件程序
- linux java so 历险
- npm ERR! cb.apply is not a function npm ERR! A complete log of this run can be found in: npm ERR!
- 用软件测试管理效率,软件测试攻略(一):效率工具分享
- 8.Azure文件(文件共享)-NAS(中)
- WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba
- springboot 配置文件乱码的问题
- tf入门-池化函数 tf.nn.max_pool 的介绍
- 【金万维】天联高级版的管理员帐号和密码忘记
- vs2010专业版下载链接
- typecho插件编写教程6 - 调用接口
- ubuntu下解决longene-qq 退出之后再登录出现登录失败的问题
- MRT工具谢幕,HEG华丽登场
- Python编程:Python2和Python3环境下re正则匹配中文
- 计算机excel表格公式教程,Excel2010
- android 高德地图动画,使用MotionLayout实现高德地图bottomSheets效果
热门文章
- jquery插件课程1 幻灯片、城市选择、日期时间选择、拖放、方向拖动插件
- 7.Reverse Integer (INT; Overflow)
- 简述C++程序编写的过程
- 做10多年测试的老何
- ​我敢说,这是最全的常用设计模式汇总
- C语言,函数不可返回指向栈内存的指针
- Android系统init进程启动及init.rc全解析
- STM32F103按键操作的另一种实现——状态机
- 51单片机——硬件基础
- 【Pytorch神经网络理论篇】 06 神经元+神经网络模型+全连接网络模型