我有一个数据透视表,其日期索引范围从01-01-2014到12-31-2015。我希望索引的范围从01-01-2013到12-31-2016,并且不知道如何在不修改底层数据集的情况下通过在我的pandas数据框中插入一行,并在列中将这些日期用作我的索引对于数据透视表。
有没有办法在不修改基础数据集的情况下完成此任务?
答案 0 :(得分:0)
我将在这里成为一般人,因为没有提供示例代码或数据。假设您的原始数据框称为df
,其列Date
和Sales
。
我会尝试创建一个列表,其中包含所有日期,从2014年1月1日到2015年3月12日。我们将此列表称为dates
。我还会创建一个名为sales
的空列表(即sales = []
)。在此工作流程结束时,sales
应包含来自dt['Sales']
和占位符的数据,以用于不在数据框内的日期。在您的情况下,这些占位符将为0
。在我的回答中,数据框中列的名称是大写的;列表名称以小写字母开头。
接下来,我将遍历dates
并检查每个日期是否在dt['Date']
。列表dates
的每次迭代都将被称为date
(即date = dates[i]
)。
date
位于dt['Date']
,我会将该日期的Sales
数据附加到sales
。您可以通过以下命令在数据框中找到日期:df['Date']==date
。因此,要将相应的Sales
数据附加到列表中,我将使用此命令sales.append(df[df['Date']==date]['Sales']
。date
不在dt['Date']
,我会在sales
附加一个占位符(即sales.append(0)
。在遍历列表中的所有日期后,我将使用dates
和sales
创建最终数据框。最终的数据框应该包含原始数据的原始数据和占位符。