Python逐日填补Excel中的日期并用0值填充缺失日期的数据

简介: Python逐日填补Excel中的日期并用0值填充缺失日期的数据

  本文介绍基于Python语言,读取一个不同的列表示不同的日期.csv格式文件,将其中缺失的日期数值加以填补;并用0值对这些缺失日期对应的数据加以填充的方法。

  首先,我们明确一下本文的需求。现在有一个.csv格式文件,其第一列表示日期,用2021001这样的格式记录每一天的日期;其后面几列则是这一日期对应的数据。如下图所示。

  从上图可以看到,第一列(紫色框内)的日期有很多缺失值,例如一下子就从第001天跳到了005天,然后又直接到了042天。我们希望,基于这一文件,首先逐日填补缺失的日期;其次,对于这些缺失日期的数据(后面四列),就都用0值来填充即可。最后,我们希望用一个新的.csv格式文件来存储我们上述修改好的数据。

  知道了需求,我们就可以开始代码的撰写;具体代码如下。

# -*- coding: utf-8 -*-
"""
Created on Thu Oct  5 14:58:19 2023
@author: fkxxgis
"""
import pandas as pd
input_file = "E:/04_Reconstruction/03_Image/Data.csv"
output_file = "E:/04_Reconstruction/03_Image/Data_AllYear.csv"
df = pd.read_csv(input_file)
df['time'] = pd.to_datetime(df['time'], format='%Y%j')
df.set_index('time', inplace=True)
start_date = pd.to_datetime('2021001', format='%Y%j')
end_date = pd.to_datetime('2021365', format='%Y%j')
date_range = pd.date_range(start=start_date, end=end_date, freq='D')
df_filled = df.reindex(date_range, fill_value=0)
df_filled.reset_index(inplace=True)
df_filled['time'] = df_filled['index'].dt.strftime('%Y%j')
df_filled.drop(df_filled.columns[0], axis=1, inplace=True)
cols = list(df_filled.columns)
cols = [cols[-1]] + cols[:-1]
df_filled = df_filled[cols]
df_filled.to_csv(output_file, index=False)

  其中,我们首先导入所需的库,并定义输入和输出文件的路径。随后,我们使用pd.read_csv方法读取输入文件,并将数据存储于df中。

  接下来,我们使用pd.to_datetime方法将df中的时间列转换为日期时间格式,并使用set_index方法将时间列设置为DataFrame的索引。

  随后,计算需要填补的日期范围——我们将字符串'2021001'转换为日期时间格式并作为结束日期,将字符串'2021365'转换为日期时间格式并作为结束日期,使用pd.date_range方法生成完整的日期范围,频率为每天。

  接下来,使用reindex方法对DataFrame进行重新索引,以包含完整的日期范围,并使用0填充缺失值。其次,使用reset_index方法将索引列还原为普通列,并使用dt.strftime方法将时间列转换回字符串格式。

  最后,我们使用drop方法删除第一列(否则最终输出的结果文件的第一列是前面的索引值,而不是time列),并将最后一列(也就是time列)移到第一列。随后,即可将修改后的DataFrame保存到输出文件中,使用to_csv方法,并设置index=False以避免保存索引列。

  运行上述代码,即可得到如下图所示的结果文件。

  可以看到,此时文件中已经是逐日的数据了,且对于那些新增日期的数据,都是0来填充的。

  至此,大功告成。

欢迎关注:疯狂学习GIS

相关文章
|
3天前
|
数据采集 数据可视化 Python
Python分析香港26281套在售二手房数据
Python分析香港26281套在售二手房数据
|
4天前
|
机器学习/深度学习 数据处理 Python
如何利用Python实现高效的数据清理与预处理
数据清理和预处理是数据科学家和分析师工作中不可或缺的一环,而Python作为一门强大的编程语言,可以使这个过程变得更加高效和便捷。本文将介绍一些常见的数据清理和预处理技术,并演示如何使用Python来实现这些技术。
|
3天前
|
数据采集 存储 数据挖掘
Python DataFrame初学者指南:轻松上手构建数据表格
【5月更文挑战第19天】本文是针对初学者的Pandas DataFrame指南,介绍如何安装Pandas、创建DataFrame(从字典或CSV文件)、查看数据(`head()`, `info()`, `describe()`)、选择与操作数据(列、行、缺失值处理、数据类型转换、排序、分组聚合)以及保存DataFrame到CSV文件。通过学习这些基础,你将能轻松开始数据科学之旅。
|
3天前
|
数据挖掘 数据处理 Python
【Python DataFrame 专栏】Python DataFrame 入门指南:从零开始构建数据表格
【5月更文挑战第19天】本文介绍了Python数据分析中的核心概念——DataFrame,通过导入`pandas`库创建并操作DataFrame。示例展示了如何构建数据字典并转换为DataFrame,以及进行数据选择、添加修改列、计算统计量、筛选和排序等操作。DataFrame适用于处理各种规模的表格数据,是数据分析的得力工具。掌握其基础和应用是数据分析之旅的重要起点。
【Python DataFrame 专栏】Python DataFrame 入门指南:从零开始构建数据表格
|
5天前
|
数据采集 数据挖掘 关系型数据库
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
Excel计算函数(计算机二级)(1),2024年最新2024Python架构面试指南
|
6天前
|
JSON JavaScript 数据格式
利用 python 分析基金,合理分析数据让赚钱赢在起跑线!(1)
利用 python 分析基金,合理分析数据让赚钱赢在起跑线!(1)
|
7天前
|
存储 JSON 数据格式
Python知识点——高维数据的格式化
Python知识点——高维数据的格式化
8 0
|
7天前
|
Python
Python知识点——文件和数据格式化
Python知识点——文件和数据格式化
10 0
|
8天前
|
机器学习/深度学习 人工智能 自然语言处理
Python转换Excel到Markdown
Python转换Excel到Markdown
13 0
|
8天前
|
Python
python如何读取excel文件,并修改内容?
python如何读取excel文件,并修改内容?
26 0