将Pandas索引值提取为单个日期时间戳变量,而不是索引

时间:2014-03-25 20:55:50

标签: python pandas

所以我有一个dataFrame:

            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,但有点稀疏,无法获取单个项目!

1 个答案:

答案 0 :(得分:4)

我可能会写

>>> 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]之间的区别。

[请注意,我假设所有的纳米值都在最后。如果有valid然后是NaNs然后是valids,并且你希望第一组中的最后一个有效,那将会略有不同。]