所以我有一个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,但有点稀疏,无法获取单个项目!
答案 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,并且你希望第一组中的最后一个有效,那将会略有不同。]