Python 2.7 Python数据框架-如何插入具有特定索引的行?

Python 2.7 Python数据框架-如何插入具有特定索引的行?,python-2.7,pandas,dataframe,Python 2.7,Pandas,Dataframe,我正在学习有关数据帧的知识,并且正在研究动物目击的各种特性。我创建了一个数据框来统计这些动物的出现次数: >>> df Type Count date 2015-07-11

我正在学习有关数据帧的知识,并且正在研究动物目击的各种特性。我创建了一个数据框来统计这些动物的出现次数:

>>> df
                                                       Type  Count
date                                                                
2015-07-11                                              Dog      2
2015-07-11                                              Cat      1
2015-07-12                                              Cat      2
2015-07-13                                              Pig      1
在动物没有出现的日子里,我希望计数为0。我想要的数据帧应该如下所示:

>>> df
                                                       Type  Count
date                                                                
2015-07-11                                              Dog      2
2015-07-11                                              Cat      1
2015-07-11                                              Pig      0
2015-07-12                                              Dog      0
2015-07-12                                              Cat      2
2015-07-12                                              Pig      0
2015-07-13                                              Dog      0
2015-07-13                                              Cat      0
2015-07-13                                              Pig      1
注:我知道类型的所有值,即猫、狗、猪

如何将这些额外的行添加到数据帧中,我完全被难住了。这可能是一个关于如何使用特定索引追加行的非常愚蠢的问题

任何帮助都会很好。谢谢大家!

您可以透视和堆叠:

df.pivot(columns='Type').fillna(0).stack().astype(int)
Out: 
                 Count
date       Type       
2015-07-11 Cat       1
           Dog       2
           Pig       0
2015-07-12 Cat       2
           Dog       0
           Pig       0
2015-07-13 Cat       0
           Dog       0
           Pig       1
如果希望其中一个或两个列都作为常规列,请使用reset_index():

您可以透视和堆叠:

df.pivot(columns='Type').fillna(0).stack().astype(int)
Out: 
                 Count
date       Type       
2015-07-11 Cat       1
           Dog       2
           Pig       0
2015-07-12 Cat       2
           Dog       0
           Pig       0
2015-07-13 Cat       0
           Dog       0
           Pig       1
如果希望其中一个或两个列都作为常规列,请使用reset_index():