2016-08-03 74 views
0

事实证明,这是不平凡的,我垫系列,所以我想检查他人对此有一个简单的解决方案:熊猫:在顶部或底部

假设我有任意数量的(比如3) pd.Series:看起来像:

first = pd.Series(range(5)) 
second = pd.Series(range(7)) 
third = pd.Series(range(6)) 

我想使它们都具有相同的长度(7 - 这是最大的长度)和垫的那些与np.nan小号无论是在顶部(任选的短底部),以便首先看起来像:

nan 
nan 
    0 
    1 
    2 
    3 
    4 

等等。

回答

0

你可以使用reindex给每个系列一个新的索引。如果新的索引中包含的标签,其不是在原有系列的指数,那么NaN值填充(除非指定了不同的fill_value):

In [15]: first.reindex(range(7)) 
Out[15]: 
0 0.0 
1 1.0 
2 2.0 
3 3.0 
4 4.0 
5 NaN 
6 NaN 
dtype: float64 

你可以通过你的选择控制的NaN的位置重新索引标签:

In [19]: first.reindex(range(-2,5)) 
Out[19]: 
-2 NaN 
-1 NaN 
0 0.0 
1 1.0 
2 2.0 
3 3.0 
4 4.0 
dtype: float64 

注意的NaN S中包含强制的first的D型细胞从整D型自NaN s内提升到浮点D型是浮动(和由此的整数D型系列不能包含NaN s)。

+0

谢谢。我有一个预感,但无法修复它。我需要等待一段时间才能接受答案。 – asb