Pandas过滤并插入缺失指数的数据

时间:2017-11-24 15:24:06

标签: python python-3.x pandas

鉴于pandas Dataframe:

foo = pd.DataFrame({'col0' : pd.Series([1,2,3]), 
                    'col1' : pd.Series([4,5,6]), 
                    'col2' : pd.Series([7,8,9])})

foo.index = ['row0', 'row1', 'row2']

foo
      col0  col1  col2
row0     1     4     7
row1     2     5     8
row2     3     6     9

是否可以从数据框中选择索引中的某些键以及某些不在索引中的键,其中选择过程会使用默认值填充缺少的行?

我正在寻找表格中的某些内容(注意:'row4'不在foo中):

foo.filterWithFillIn(['row0', 'row1', 'row4'], 0)

      col0  col1  col2
row0     1     4     7
row1     2     5     8
row4     0     0     0

提前感谢您的考虑和回应。

1 个答案:

答案 0 :(得分:1)

是的,可以通过reindex

df = foo.reindex(['row0', 'row1', 'row4'], fill_value=0)
print (df)

      col0  col1  col2
row0     1     4     7
row1     2     5     8
row4     0     0     0

如果使用pandas 0.21.0+则为recommended way

  

以前,选择一个标签列表,其中一个或多个标签丢失将始终成功,返回NaN以查找丢失的标签。现在显示FutureWarning。将来这将提高KeyError。当传递至少有1个缺少标签的标签列表时,此警告将在DataFrame或系列上触发,以便使用.loc[][[]]