Pandas 熊猫:顶部或底部的垫系列

Pandas 熊猫:顶部或底部的垫系列,pandas,series,Pandas,Series,这对我来说不是小事,所以我想看看其他人是否有一个简单的解决方案: 假设我有一个任意数(比如3)的pd.Series:看起来像: first = pd.Series(range(5)) second = pd.Series(range(7)) third = pd.Series(range(6)) 我想让它们都具有相同的长度(7——这是最大的长度),并在较短的部分顶部(可选底部)填充np.nans,这样首先看起来像: nan nan 0 1 2 3 4 依此类推。你可以给每

这对我来说不是小事,所以我想看看其他人是否有一个简单的解决方案:

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

first = pd.Series(range(5))
second = pd.Series(range(7))
third = pd.Series(range(6))
我想让它们都具有相同的长度(7——这是最大的长度),并在较短的部分顶部(可选底部)填充
np.nan
s,这样首先看起来像:

nan
nan
  0
  1
  2
  3
  4
依此类推。

你可以给每个系列一个新的索引。如果新索引包含不在原始系列索引中的标签,则填写
NaN
值(除非指定了不同的
fill\u值
):

您可以通过选择重新索引标签来控制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
的数据类型从整数数据类型提升为浮点数据类型,因为
NaN
s是浮点数(因此整数数据类型系列不能包含
NaN
s)

谢谢。我有预感,但没能治好。我需要等一会儿才能接受答案。
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