Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 填写缺少的日期值,并基于上一行填充第二列_Python_Pandas_Pyspark Dataframes - Fatal编程技术网

Python 填写缺少的日期值,并基于上一行填充第二列

Python 填写缺少的日期值,并基于上一行填充第二列,python,pandas,pyspark-dataframes,Python,Pandas,Pyspark Dataframes,我有一个csv,有两列,一列填有日期,第二列填有速率值。根据日期列,该文件包含一些缺少的行 我想要一些python代码,可以填充第一行和最后一行(2019年1月1日至2019年1月14日)之间缺失的日期,第二个任务是用前几天的比率填充缺失的比率 例如,缺少1月的04日和05日,需要创建这些行,并且前几天的费率为1月03日-1.12日,因此需要填充04日和05日的费率 代码需要是动态的,因此每个文件的第一行和最后一行并不总是相同的。例如,第二个文件的第一行和最后一行值可以是2019年2月3日和20

我有一个csv,有两列,一列填有日期,第二列填有速率值。根据日期列,该文件包含一些缺少的行

我想要一些python代码,可以填充第一行和最后一行(2019年1月1日至2019年1月14日)之间缺失的日期,第二个任务是用前几天的比率填充缺失的比率

例如,缺少1月的04日和05日,需要创建这些行,并且前几天的费率为1月03日-1.12日,因此需要填充04日和05日的费率

代码需要是动态的,因此每个文件的第一行和最后一行并不总是相同的。例如,第二个文件的第一行和最后一行值可以是2019年2月3日和2019年2月25日。如果可能,相同的代码需要能够在每个文件上运行

输入将是csv,输出也需要是csv文件

输入-

Date,Rate
01/01/2019,1.12
02/01/2019,1.13
03/01/2019,1.12
06/01/2019,1.11
07/01/2019,1.13
08/01/2019,1.14
09/01/2019,1.13
10/01/2019,1.11
12/01/2019,1.12
13/01/2019,1.13
14/01/2019,1.14

如果您有任何问题,请告诉我。

首先,您需要确保您的日期是
datetime
类型,并且您可以使用
重新采样

# resample
df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)

new_df = df.set_index('Date').resample('D').ffill().reset_index()
输出:

         Date  Rate
0  2019-01-01  1.12
1  2019-01-02  1.13
2  2019-01-03  1.12
3  2019-01-04  1.12
4  2019-01-05  1.12
5  2019-01-06  1.11
6  2019-01-07  1.13
7  2019-01-08  1.14
8  2019-01-09  1.13
9  2019-01-10  1.11
10 2019-01-11  1.11
11 2019-01-12  1.12
12 2019-01-13  1.13
13 2019-01-14  1.14

好像不起作用?df['Date']=pd.to_datetime(df['Date'],format='%d/%m/%Y')df.set_index('Date')。重采样('d')。ffill()。reset_index()df['Date']=pd.to_datetime(df['Date'],dayfirst=True)打印(df)输出刚刚返回输入?很抱歉,复制/粘贴时弄乱了顺序。请参阅更新。