发布日期:2025-01-18 12:47 点击次数:146
本文先容基于Python说话九游体育app官网,读取一个不同的行暗示不同的日历的.csv体式文献,将其中缺失的日历数值加以填补;并用0值对这些缺失日历对应的数据加以填充的门径。
最初,咱们明确一下本文的需求。咫尺有一个.csv体式文献,其第一列暗示日历,用2021001这么的体式纪录每一天的日历;自后头几列则是这一日历对应的数据。如下图所示。
从上图不错看到,第一列(紫色框内)的日历有好多缺失值,举例一下子就从第001天跳到了005天,然后又径直到了042天。咱们但愿,基于这一文献,最初每日填补缺失的日历;其次,关于这些缺失日历的数据(后头四列),就齐用0值来填充即可。终末,咱们但愿用一个新的.csv体式文献来存储咱们上述修改好的数据。
知谈了需求,咱们就不错启动代码的撰写;具体代码如下。
# -*- coding: utf-8 -*- 张开剩余77%""" 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来填充的。
至此九游体育app官网,大功顺利。
发布于:天津市