#两种方法实现
'''
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. java 反射实现 工厂模式_java – 用反射实现工厂模式
  2. Linux系统性能查询命令
  3. springboot整合 beatlsql
  4. 数据解析1:XML解析(1)
  5. android常用窗口动画,android 自定义dialog,窗口动画,
  6. 【Android TV 开发】-->开发汇总
  7. 如何在Inceptor中使用日期函数获取与转换时间
  8. 1 使用WPE工具分析游戏网络封包
  9. 缠中说禅重新编排版《论语》(编撰版)
  10. 手机运作html实现弹窗,html5实现手机弹窗留言对话框(摘)
  11. Python 爬虫框架Scrapy Spiders学习
  12. 6 模型的属性与功能
  13. Day215.课程详细页面功能完善、Echarts统计分析模块[生成统计数据+生成图表]前后端整合 -谷粒学院
  14. mysql sql宽字节注入_sql注入之(宽字节注入篇)
  15. Windows网络活跃点决定使用的优先权
  16. 同卵双胞胎的2型糖尿病的易感性位点的综合表观基因分析
  17. spark+smack+openfire实现请求响应简单流程
  18. 兄弟连兄弟会机构好不好
  19. 数据分析统计学原理第十三章:实验设计与方差分析 | 我的统计学原理复习日记
  20. ecmall php传变量,PHP_ECMall支持SSL连接邮件服务器的配置方法详解,首先,主要是ecmall使用的phpmail - phpStudy...

热门文章

  1. Revit2016 笔记10 - Revit标注
  2. jquery实现选项卡效果
  3. 安川服务器显示030,安川伺服驱动器常见故障报警代码解析
  4. OpenSees2.3.0 用vs2012编译
  5. linux php使用fping,Linux-fping命令使用
  6. 推荐:屡试不爽的面试经(转)
  7. 如何快速制作名片/卡片式报表
  8. Gradle更小、更快构建APP的奇淫技巧
  9. 【IOT】轻量级语音识别框架汇总
  10. python判断邮件发送成功_(原创)python发送邮件