Issue 1:
Under #18262 a FutureWarning was added suggesting that existing code like this:

pd.DataFrame.from_items(x)

Should be changed to this:

import collections
pd.DataFrame.from_dict(collections.OrderedDict(x))

The fact that from_items() appeared only 6 times (now 8 times) in a Stack Overflow search was used as partial justification for removing it. But if you search on GitHub, pd.DataFrame.from_items() appears more than 15,000 times in Python--almost half as many as from_records()!

We should celebrate the fact that this function doesn't cause enough confusion to appear often on Stack Overflow. But it does occur (a lot!) in real code, and deprecating it is a mistake.

If constructing a temporary OrderedDict around items is the best way to construct a DataFrame, Pandas should implement that as a short function called DataFrame.from_items(), rather than asking thousands of people to busy themselves to accommodate this unnecessary API change.

I recommend removing the FutureWarning, and retaining this widely-used, longstanding function.

For reference, the FutureWarning starts in 0.23 and looks like this:

FutureWarning: from_items is deprecated. Please use DataFrame.from_dict(dict(items), ...) instead. DataFrame.from_dict(OrderedDict(items)) may be used to preserve the key order.

Issue 2:
I want to slice log files to extract only values within a certain time range. This works well with all but one log file. "Must be the log file then!". However, the log file is well-formed like all the others and I don't see the reason my code fails:

import pandas as pan
import datetime as dt

time_f = '%Y-%m-%d %H:%M:%S.%f'

def get_sublog_by_index(log, t_stime, t_etime):
s_idx, e_idx = log.index.slice_locs(t_stime, t_etime)
return log.ix[s_idx: e_idx + 1]

if __name__ == '__main__':
#http://pastebin.com/tQ6MFhgN
df_good = pan.read_csv('dstat_good', header=True, parse_dates=True, index_col=0)
#http://pastebin.com/M9r59Seq
df_bad = pan.read_csv('dstat_bad', header=True, parse_dates=True, index_col=0)
#manual construction just to be shure; why does pan.tslib.Timestamp.strptime fail?
s_t_g = pan.tslib.Timestamp(dt.datetime.strptime('2015-04-23 03:46:37.030256', time_f))
s_e_g = pan.tslib.Timestamp(dt.datetime.strptime('2015-04-23 04:46:40.560409', time_f))
s_t_b = pan.tslib.Timestamp(dt.datetime.strptime('2015-04-23 02:44:49.310807', time_f))
s_e_b = pan.tslib.Timestamp(dt.datetime.strptime('2015-04-23 03:44:52.922636', time_f))
sublog_g = get_sublog_by_index(df_good, s_t_g, s_e_g)
sublog_b = get_sublog_by_index(df_bad, s_t_b, s_e_b)

I have two log files to test, one working, the other not:

http://pastebin.com/tQ6MFhgN (working)

http://pastebin.com/M9r59Seq (not working)

At closer inspection you will notice that the start and end times (s_t* and s_e*) are within the range of the logs' timestamps. You will also notice that the bad log has no odd data or anything else that gives a hint why the code is not working in that case. This is truly odd and seems to origin from the deep. Or I'm struck with utter blindness?

For completeness, this is what I get if I try to slice the bad log file:

...
File "/usr/local/bin/dstatlogsplit", line 54, in get_sublog_by_index
s_idx, e_idx = log.index.slice_locs(t_stime, t_etime)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/index.py", line 2484, in slice_locs
start_slice = self.get_slice_bound(start, 'left', kind)
File "/usr/local/lib/python2.7/dist-packages/pandas/core/index.py", line 2432, in get_slice_bound
raise err
KeyError: 1429757089310807000L