我有一个看起来像这样的熊猫系列:
>>> x.sort_index()
2 1
5 2
6 3
8 4
我要填写此系列,以便表示“缺失”的索引行,并用0填充数据值。
这样,当我列出新系列时,它看起来像这样:
>>> z.sort_index()
1 0
2 1
3 0
4 0
5 2
6 3
7 0
8 4
我尝试创建“虚拟”系列
>>> y = pd.Series([0 for i in range(0,8)])
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
然后将它们连接在一起-但结果是:
>>> pd.concat([x,z],axis=0)
2 1
5 2
6 3
8 4
0 0
1 0
2 0
3 0
4 0
5 0
6 0
7 0
要么
>>> pd.concat([x,z],axis=1)
0 1
0 NaN 0
1 NaN 0
2 1 0
3 NaN 0
4 NaN 0
5 2 0
6 3 0
7 NaN 0
8 4 NaN
上面列出的目标结构都不是。
我可以尝试对axis = 1版本执行一些算术运算,并取第1列和第2列之和,但是我正在寻找一种更整洁的单行版本-是否存在这样的索引填充/清理操作,如果存在, 它是什么?
你想要的是一个reindex
。首先根据需要创建索引(在本例中为一个范围),然后使用它重新索引:
In [64]: x = pd.Series([1,2,3,4], index=[2,5,6,8])
In [65]: x
Out[65]:
2 1
5 2
6 3
8 4
dtype: int64
In [66]: x.reindex(range(9), fill_value=0)
Out[66]:
0 0
1 0
2 1
3 0
4 0
5 2
6 3
7 0
8 4
dtype: int64
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句