如何在熊猫中为不存在的条目创建新行

时间:2020-04-17 12:18:46

标签: python-3.x pandas

我有以下数据框

import pandas as pd
foo = pd.DataFrame({'cat': ['a', 'a', 'a', 'b'], 'br': [1,2,2,3], 'ch': ['A', 'A', 'B', 'C'],
'value': [10,20,30,40]})

对于每个catbr,我想添加ch 0缺失的value

我的最终数据框应如下所示:

 foo_final = pd.DataFrame({'cat': ['a', 'a', 'a', 'b', 'a', 'a', 'a', 'b', 'b'], 
                          'br': [1,2,2,3, 1, 1, 2, 3, 3], 
                          'ch': ['A', 'A', 'B','C','B', 'C', 'C', 'A', 'B'],
                          'value': [10,20,30,40, 0,0, 0,0,0]})

1 个答案:

答案 0 :(得分:3)

使用DataFrame.set_index Multiindex,然后将DataFrame.unstackDataFrame.stack一起使用:

foo = foo.set_index(['cat','br','ch']).unstack(fill_value=0).stack().reset_index()
print (foo)
  cat  br ch  value
0   a   1  A     10
1   a   1  B      0
2   a   1  C      0
3   a   2  A     20
4   a   2  B     30
5   a   2  C      0
6   b   3  A      0
7   b   3  B      0