#两种方法实现
'''
1)DataFrame.reindex:调整dataframe的索引以适应新的索引
2) DataFrame.resample,可以对时间序列重新采样,支持补充缺失值
'''
import pandas as pd
import os
%matplotlib inline
df = pd.DataFrame({"pdate":['2019-12-01','2019-12-02','2019-12-04','2019-12-05'],'pv':[100,200,400,500],'uv':[10,20,40,50],
})
df
pdate pv uv
0 2019-12-01 100 10
1 2019-12-02 200 20
2 2019-12-04 400 40
3 2019-12-05 500 50
#df缺少2019-12-03这个日期
df.set_index('pdate').plot()
<matplotlib.axes._subplots.AxesSubplot at 0x1d68fb97e10>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cScC4omN-1601386256504)(output_2_1.png)]

#方法一
pdate pv uv
0 2019-12-01 100 10
1 2019-12-02 200 20
2 2019-12-04 400 40
3 2019-12-05 500 50
df_date = df.set_index('pdate')
df_date
#将索引设置为日期,并且将index改为时间序列的格式
pv uv
pdate
2019-12-01 100 10
2019-12-02 200 20
2019-12-04 400 40
2019-12-05 500 50
df_date.index
Index(['2019-12-01', '2019-12-02', '2019-12-04', '2019-12-05'], dtype='object', name='pdate')
#将DataFrame的index从字符串转换成时间序列,再输出相应index为时间序列的DataFrame
df_date = df_date.set_index(pd.to_datetime(df_date.index))
df_date.index
DatetimeIndex(['2019-12-01', '2019-12-02', '2019-12-04', '2019-12-05'], dtype='datetime64[ns]', name='pdate', freq=None)
pdate = pd.date_range(start = '2019-12-01',end = '2019-12-05')
pdate
DatetimeIndex(['2019-12-01', '2019-12-02', '2019-12-03', '2019-12-04','2019-12-05'],dtype='datetime64[ns]', freq='D')
df_date_new = df_date.reindex(pdate,fill_value=0)#注意,重新设置index是reindex,不是set_index
df_date_new
pv uv
2019-12-01 100 10
2019-12-02 200 20
2019-12-03 0 0
2019-12-04 400 40
2019-12-05 500 50

‘’’
reindex()方法用于创建一个符合新索引的新对象
①对于Series类型,调用reindex()会将数据按照新的索引进行排列,如果某个索引值之前不存在,则引入缺失值
如:
②DataFrame中,reindex()可以改变行索引和列索引
reset_index(),顾名思义,即设置索引。可以设置单索引和复合索引
调用这个函数会生成一个新的DataFrame, 新的df使用一个列或多个列作为索引
reset_index(),它是set_index()的反操作,调用它分层索引的索引层级会被还原到列中

‘’’

df_date_new.plot()
<matplotlib.axes._subplots.AxesSubplot at 0x1d691b08a58>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GkR5Se3o-1601386256511)(output_10_1.png)]

#方法二:pandas.resample方法
df
pdate pv uv
0 2019-12-01 100 10
1 2019-12-02 200 20
2 2019-12-04 400 40
3 2019-12-05 500 50
df_new2 = df.set_index(pd.to_datetime(df['pdate']))
#
df_new2
pdate pv uv
pdate
2019-12-01 2019-12-01 100 10
2019-12-02 2019-12-02 200 20
2019-12-04 2019-12-04 400 40
2019-12-05 2019-12-05 500 50
df_new2 = df.set_index(pd.to_datetime(df['pdate'])).drop('pdate',axis=1)
df_new2
pv uv
pdate
2019-12-01 100 10
2019-12-02 200 20
2019-12-04 400 40
2019-12-05 500 50
df_new3 = df_new2.resample('D').mean().fillna(0)
df_new3
pv uv
pdate
2019-12-01 100.0 10.0
2019-12-02 200.0 20.0
2019-12-03 0.0 0.0
2019-12-04 400.0 40.0
2019-12-05 500.0 50.0

pandas处理日期缺失相关推荐

  1. pandas基于日期信息(time or date)生成季度信息(quarter)实战:pandas基于日期信息列生成季度信息列、dt.quarter生成季度信息、dt.to_period生成季度信息

    pandas基于日期信息(time or date)生成季度信息(quarter)实战:pandas基于日期信息列生成季度信息列.dt.quarter生成季度信息.dt.to_period生成季度信息 ...

  2. pandas判断日期是否是闰年(is_leap_year)实战: 数据列转化为日期(时间)格式、判断pandas的日期数据列是否是闰年

    pandas判断日期是否是闰年(is_leap_year)实战: 数据列转化为日期(时间)格式.判断pandas的日期数据列是否是闰年 目录

  3. pandas 按日期范围筛选数据的实现

    <h1 class="title">pandas 按日期范围筛选数据的实现</h1><div class="info">   ...

  4. pandas处理日期的几种常用方法

    1.读取字符串日期 写入csv 文件 csv_text = """date, value 2022-01-01, 1 2022-01-05, 5 2022-11-05, ...

  5. 纠正Pandas中的缺失数据

    目录 介绍 查找丢失的数据元素 使用drop和dropna删除缺少的Pandas列 丢掉丢失的Pandas行 替换值 摘要 将数据加载到灵活的结构后,我们需要确定如何处理丢失和重复的数据元素. 下载C ...

  6. Pandas处理日期数据的常见操作集锦

    Pandas处理日期数据的常见操作集锦 数据读取及整理 获取某个日期之前/后或时间区间的数据 python 获取当前时间及前一天时间 pandas的日期时间间隔运算选取指定时间范围内/外的数据 利用p ...

  7. pandas 合并日期和时间列

    原始数据的样子如下: 需要达到的效果如下图: 方法一:这个方法比较简单,代码为: data['datetime'] = data['Date'] + ' ' + data['Time'] 参考连链接: ...

  8. Python数据处理-使用Pandas补齐缺失日期(pd.date_range)

    在处理时间序列的数据中,有时候会遇到有些日期的数据缺失的情况,这时候可以用pandas的 date_range 函数快速补齐缺失日期,再根据实际情况补齐缺失值. import pandas as pd ...

  9. pandas生成日期去掉时分秒

    pandas如何用字典生成数据&生成日期默认为年月日时分秒 如何去掉时分秒 import pandas as pd import numpy as npdf = pd.DataFrame({& ...

最新文章

  1. php文件手机怎么解压,linux 怎么解压文件
  2. 安卓机更新系统会卡吗_iOS13.3系统值得更新吗?信号怎么样?续航改善了没有?...
  3. NAT的经典配置实例
  4. python中字符串与字节转换
  5. 自动推荐图表、智能分析,这个分析工具有点酷!
  6. C# 中XML序列化与反序列化学习笔记
  7. 【威佐夫博奕】 betty定理 poj 1067
  8. python机器学习搭建空气质量AQI(air quality index)预测模型
  9. android平板安装win10,如何给平板电脑装win10系统?
  10. Hadoop 3.X, 纠删码
  11. 有了这15款编程游戏,谁都可以学编程!
  12. SysML实践指南第二版(中文翻译:刘亚龙)第七章 使用模块图(BDD)建模
  13. 如今的iOS开发者优胜劣汰,如何提升让自己不被淘汰?
  14. 中国老百姓一生要交多少税?
  15. android 程序白屏,Android冷启动白屏问题
  16. C++生成条型码和二维码源码及调用示例 还是C#方便
  17. html不同板块点击切换,板块快速切换的操作策略
  18. FDC2214——电容传感器芯片的使用与配置(STM32控制)
  19. 计算机网络模拟校园,计算机网络课程设计-模拟校园网组网实验.doc
  20. python怎么表示正无穷_在Python中分别测试正无穷大或负无穷大

热门文章

  1. 什么是Apple Search Ads
  2. 简单的网络文件传输工具(TCP连接)
  3. ajax绑值,AJAX请求,返回json进行页面绑值
  4. leaflet加载实时路况图层(高德、百度)
  5. 中国石油大学《CAD制图》第二阶段在线作业
  6. 计算机视觉用于图像识别的难点在哪?
  7. LINUX 命令 之 zip 解压缩
  8. 怎么实现MindMapper属性例举导图的创建
  9. 题-Knapsack
  10. 连锁多门店收银系统之进销存的采购进货单源码功能逻辑