python - 填写缺失的日期值并根据上一行填充第二列

标签 python pandas pyspark

我有一个包含 2 列的 csv,其中一列填充了日期,第二列填充了费率值。该文件包含一些基于日期列的缺失行。

我想要一些Python代码,可以填充第一行和最后一行之间(01/01/2019和14/01/2019之间)缺失的日期,第二个任务是填充缺失的日期与前几天的汇率。

例如,1 月 04 日和 05 日缺失,需要创建这些行,并且前几天的汇率为 1 月 3 日 - 1.12,因此需要填充 1 月 4 日和 05 日的汇率。

代码需要是动态的,因此每个文件的第一行和最后一行并不总是相同。例如,第二个文件的第一行和最后一行的值可以分别为 03/02/2019 和 25/02/2019。如果可能的话,相同的代码需要能够在每个文件上运行。

输入为 csv,输出也需要为 csv 文件。

enter image description here

输入 -

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:

# 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

关于python - 填写缺失的日期值并根据上一行填充第二列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60455914/

相关文章:

python - 在 Python 中查找列表之间不常见的项目

python - 如何传递列表元素作为引用?

python - 使用列表选择 Pandas 列

Python/Pandas - 删除以字符串开头的列

Python Pandas 从两行创建共同出现矩阵

python - pyspark : select columns with special characters from map type column

python - Django 调试工具栏设置

python - Geodataframe map 图似乎忽略了 legend_kwds

azure - Azure Blob 存储和 Azure databricks 之间的高效数据检索过程

apache-spark - 推断 Pyspark 架构