``` python a = np.array([(1, 2)], dtype=[('id', np.int64), ('value', np.int64)]) df = pd.DataFrame.from_records(a, index='id') # ok b = np.array([], dtype=[('id', np.int64), ('value', np.int64)]) df = pd.DataFrame.from_records(b, index='id') # KeyError: 'id' ``` The cause is _to_arrays checks for empty data before understanding that ndarray was passed.