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

问题描述:

我正在学习数据框,并且在多天的时间里研究动物目击的各种属性。我创建了计算这些动物出现的次数数据框:Python数据框 - 如何插入具有特定索引的行?

>>> 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 

注意:我知道Type的所有值即Cat, Dog, Pig

我完全难倒如何将这些额外的行添加到DataFrame。这可能是一个非常愚蠢的问题,关于如何追加具有特定索引的行。

任何帮助将是可爱的。谢谢!

您可以转动&堆栈:

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).reset_index() 
Out: 
     date Type Count 
0 2015-07-11 Cat  1 
1 2015-07-11 Dog  2 
2 2015-07-11 Pig  0 
3 2015-07-12 Cat  2 
4 2015-07-12 Dog  0 
5 2015-07-12 Pig  0 
6 2015-07-13 Cat  0 
7 2015-07-13 Dog  0 
8 2015-07-13 Pig  1 

df.pivot(columns='Type').fillna(0).stack().astype(int).reset_index(level=1) 
Out: 
      Type Count 
date     
2015-07-11 Cat  1 
2015-07-11 Dog  2 
2015-07-11 Pig  0 
2015-07-12 Cat  2 
2015-07-12 Dog  0 
2015-07-12 Pig  0 
2015-07-13 Cat  0 
2015-07-13 Dog  0 
2015-07-13 Pig  1 
+0

普莱斯好心看看这个问题的https: //*.com/questions/44599589/inserting-new-rows-in-pandas-data-frame-at-specific-indices – Liza