【问题标题】:How to extend an object series in length in python如何在python中扩展对象系列的长度
【发布时间】:2019-02-10 20:36:10
【问题描述】:

我有一个系列:

0    2018-08-02 00:00:00
1    2016-07-20 00:00:00
2    2015-09-14 00:00:00
3    2014-09-11 00:00:00
Name: EUR6m3m, dtype: object

我希望将系列的长度加一并移位,这样预期的输出是:(今天显然是今天的日期,格式相同)

0    today()
1    2018-08-02 00:00:00
2    2016-07-20 00:00:00
3    2015-09-14 00:00:00
4    2014-09-11 00:00:00
Name: EUR6m3m, dtype: object

我目前的做法是将最后一个值存储在原始系列中:

a = B[B.last_valid_index()]

然后追加:

B.append(a)

但我得到了错误:

TypeError: cannot concatenate object of type "<class 'pandas._libs.tslibs.timestamps.Timestamp'>"; only pd.Series, pd.DataFrame, and pd.Panel (deprecated) objs are valid

所以我尝试了: B.to_pydatetime() 但没有运气。

有什么想法吗?我不能追加也不能扩展列表,(最好是追加)它们是对象,因为它们是日期和时间的列表。

【问题讨论】:

    标签: python pandas indexing series


    【解决方案1】:

    你可以在这里追加:

    s = pd.Series([1,2,3,4])
    s1 = pd.Series([5])
    s1 = s1.append(s)
    s1 = s1.reset_index(drop=True)
    

    简单优雅的输出:

    0 5
    1 1
    2 2
    3 3
    4 4
    

    【讨论】:

      【解决方案2】:

      您可以增加索引,通过pd.Series.loc 按标签添加项目,然后使用sort_index

      鉴于您提供的输入数据,尚不清楚last_valid_index 的相关性。

      s = pd.Series(['2018-08-02 00:00:00', '2016-07-20 00:00:00',
                     '2015-09-14 00:00:00', '2014-09-11 00:00:00'])
      s = pd.to_datetime(s)
      
      s.index += 1
      s.loc[0] = pd.to_datetime('today')
      s = s.sort_index()
      

      结果

      0   2018-09-05
      1   2018-08-02
      2   2016-07-20
      3   2015-09-14
      4   2014-09-11
      dtype: datetime64[ns]
      

      【讨论】:

      • 你说得对,我不需要last_valid_index。但是,我得到的输出是:` 0 1536167985736000000 1 2018-08-02 00:00:00 2 2016-07-20 00:00:00 3 2015-09-14 00:00:00 4 2014-09-11 00:00:00 名称:EUR6m3m,dtype:object`,我猜,@jpp,我是否还在与我拥有的object 类型的系列作斗争,以及pd.to_datetime('today') 类型为datetime
      • @JunaidMohammad,我的解决方案的第一行是pd.to_datetime(s)。我强烈建议你也这样做。根据您提供的数据,它显然有效。因此,您需要能够对此进行调试或在它不起作用的地方提供一些数据。否则我们都在猜测。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-12
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      • 2021-04-15
      相关资源
      最近更新 更多