鉴于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
提前感谢您的考虑和回应。
答案 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[]
或[[]]
。