用0填充python数据透视表

时间:2015-10-29 17:14:22

标签: python python-2.7 pandas dataframe pivot-table

我有一个数据透视表,其日期索引范围从01-01-2014到12-31-2015。我希望索引的范围从01-01-2013到12-31-2016,并且不知道如何在不修改底层数据集的情况下通过在我的pandas数据框中插入一行,并在列中将这些日期用作我的索引对于数据透视表。

有没有办法在不修改基础数据集的情况下完成此任务?

1 个答案:

答案 0 :(得分:0)

我将在这里成为一般人,因为没有提供示例代码或数据。假设您的原始数据框称为df,其列DateSales

我会尝试创建一个列表,其中包含所有日期,从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)

在遍历列表中的所有日期后,我将使用datessales创建最终数据框。最终的数据框应该包含原始数据的原始数据和占位符。