【问题标题】:Pandas: pad series on top or bottom熊猫:顶部或底部的垫系列
【发布时间】:2016-08-03 12:01:18
【问题描述】:

这对我来说并非易事,所以我想检查其他人是否有一个简单的解决方案:

假设我有一个任意数字(比如 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

等等。

【问题讨论】:

    标签: pandas series


    【解决方案1】:

    您可以使用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
    

    请注意,包含 NaNs 会强制将 first 的 dtype 从整数 dtype 提升为浮点 dtype,因为 NaNs 是浮点数(因此整数 dtype 的系列不能包含 @ 987654330@s)。

    【讨论】:

    • 谢谢。我有预感,但无法解决。我需要等待一段时间才能接受答案。
    猜你喜欢
    • 2021-07-10
    • 2018-11-08
    • 2013-01-20
    • 1970-01-01
    • 2023-04-08
    • 2017-11-19
    • 2021-07-07
    • 2017-01-31
    • 1970-01-01
    相关资源
    最近更新 更多