熊猫-填写数据框的缺失日期值并复制列值(除了一个)

时间:2020-10-14 09:54:32

标签: python pandas dataframe

我有一个问题,关于如何在熊猫数据框中填充未成年人日期值。 我发现了类似的问题(pandas fill missing dates in time series

但这不能回答我的实际问题。

我有一个看起来像这样的数据框:

date            amount   person   country
01.01.2019      10       John     IT
01.03.2019      5        Jane     SWE
01.05.2019      3        Jim      SWE
01.05.2019      10       Jim      SWE
02.01.2019      10       Bob      UK
02.01.2019      10       Jane     SWE
02.03.2019      10       Sue      IT

如您所见,日期中缺少值。 我需要做的是填充缺少的日期值,并用上一行中的值(“ amount”列除外)填充剩余的列值,我需要将其设置为0,否则我将伪造我的金额。 / p>

我知道Pandas(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reindex.html)中有一个用于执行此命令的命令,但是我不确定如何将其应用于填充缺失值。

data = data.reindex(pd.date_range("2019-01-01", "2019-01-03")) 

method='backfill') , fill_value="0") ?

预期输出如下:

date            amount   person   country
01.01.2019      10       John     IT
01.02.2019      0        Jane     SWE
01.03.2019      5        Jane     SWE
01.04.2019      0        Jane     SWE
01.05.2019      3        Jim      SWE
01.05.2019      10       Jim      SWE
02.01.2019      10       Bob      UK
02.01.2019      10       Jane     SWE
02.02.2019      0        Jane     SWE
02.03.2019      10       Sue      IT

在此方面的任何帮助,我将不胜感激。

谢谢你和BR

1 个答案:

答案 0 :(得分:0)

我认为最简单的方法是分2个步骤替换缺失值:

data = data.reindex(pd.date_range("2014-11-01", "2019-10-31")) 
data['amount'] = data['amount'].fillna(0)
data = data.bfill()