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
普莱斯好心看看这个问题的https: //stackoverflow.com/questions/44599589/inserting-new-rows-in-pandas-data-frame-at-specific-indices – Liza