【问题标题】:Extract Pandas index value as single date time stamp variable, Not as index将 Pandas 索引值提取为单个日期时间戳变量,而不是作为索引
【发布时间】:2014-03-25 20:55:50
【问题描述】:

所以我有一个数据框:

            Units   fcast   currerr curpercent  fcastcum  unitscum  cumerrpercent
2013-09-01   3561    NaN    NaN  NaN     NaN     NaN     NaN
2013-10-01   3480    NaN    NaN  NaN     NaN     NaN     NaN
2013-11-01   3071    NaN    NaN  NaN     NaN     NaN     NaN
2013-12-01   3234    NaN    NaN  NaN     NaN     NaN     NaN
2014-01-01   2610    2706   -96 -3.678161 2706   2610   -3.678161
2014-02-01   NaN     3117   NaN  NaN     5823    NaN     NaN
2014-03-01   NaN     3943   NaN  NaN     9766    NaN     NaN

我想加载一个值,即当前月份的索引,该索引是通过将填写了“单位”的最后一项找到的,放入一个变量“curr_month”中,该变量将具有多种用途(包括文本显示并用作切片运算符)

这很丑陋,但几乎可以工作:

curr_month=mergederrs['Units'].dropna()
curr_month=curr_month[-1:].index
curr_month 

但是 curr_month 是

<class 'pandas.tseries.index.DatetimeIndex'>
[2014-01-01]
Length: 1, Freq: None, Timezone: None

这是不可散列的,所以这失败了

mergederrs[curr_month:]

这些文档非常适合创建 DF,但在获取单个项目方面有点少!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    我可能会写

    >>> df.Units.last_valid_index()
    Timestamp('2014-01-01 00:00:00')
    

    但对您的方法稍作调整也应该有效:

    >>> df.Units.dropna().index[-1]
    Timestamp('2014-01-01 00:00:00')
    

    这是somelist[-1:]somelist[-1] 之间的区别。

    [请注意,我假设所有的 nan 值都在最后。如果有有效值,然后是 NaN,然后​​是有效值,并且您希望第一组中的最后一个有效值,那将略有不同。]

    【讨论】:

    • Sheesh 从来没有这个功能存在! “last_valid_index”也感谢您的第二次澄清..
    • 回去查看有关 last_valid_index 的文档.. 有点稀疏!而且我不记得曾经在示例中看到过它,但它显然是一个很好的工具!
    猜你喜欢
    • 2013-05-07
    • 2014-12-17
    • 2018-10-30
    • 2020-01-16
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2018-03-03
    相关资源
    最近更新 更多