【问题标题】:Convert leading nan to trailing nan in pandas在熊猫中将前导nan转换为尾随nan
【发布时间】:2021-06-14 18:11:22
【问题描述】:

我有一个与数组连接的数据框。

s = pd.concat([dataframe, pd.Series(array)], ignore_index=False, axis=1)

我的问题是数组的长度较短,导致 nan。 我希望使用尾随 nan,因为该值对应于框架底部的最新值。

例子:

   col1 col2 col3 
0    23   56   68
1    12   09   21
2    12   93   nan
3    12   64   nan

应该是:

   col1 col2 col3 
0    23   56   nan
1    12   09   nan
2    12   93   68
3    12   64   21

任何帮助将不胜感激。

【问题讨论】:

  • pd.concat([df, array.set_axis(df.index[-len(array):])], axis=1, ignore_index=False) 将系列的索引设置为数据帧的最后一个 len(array) 元素,然后再连接。 array = pd.Series(array) 在您的代码中。
  • @MustafaAydın 您可以将其添加为答案。
  • @ShubhamSharma 因重复而被关闭。
  • @MustafaAydın 我不认为这是一个重复的问题,尽管它与标记的欺骗有关,但绝对不是重复的。让我打开它。

标签: python pandas


【解决方案1】:
pd.concat([df, array.set_axis(df.index[-len(array):])], axis=1)

首先将系列的索引设置为数据帧的最后一个 len(array) 元素,然后再连接。 array = pd.Series(array) 在您的代码中。

得到

   col1  col2  col3
0    23    56   NaN
1    12     9   NaN
2    12    93  68.0
3    12    64  21.0

【讨论】:

    【解决方案2】:

    如何移动索引:

    d = dataframe
    s = pd.Series(array)
    s.index += 2 # or len(d.index) - len(s.index) 
    pd.concat([d,s],axis=1) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-01
      • 2021-12-08
      • 2022-01-03
      • 2023-01-20
      • 2018-07-05
      • 2021-12-15
      • 2014-01-29
      • 1970-01-01
      相关资源
      最近更新 更多