@@ -286,6 +286,7 @@ def should_store(self, value):
286
286
class DatetimeBlock (IntBlock ):
287
287
pass
288
288
289
+
289
290
def make_block (values , items , ref_items , do_integrity_check = False ):
290
291
dtype = values .dtype
291
292
vtype = dtype .type
@@ -308,6 +309,7 @@ def make_block(values, items, ref_items, do_integrity_check=False):
308
309
309
310
# TODO: flexible with index=None and/or items=None
310
311
312
+
311
313
class BlockManager (object ):
312
314
"""
313
315
Core internal data structure to implement DataFrame
@@ -1002,9 +1004,12 @@ def form_blocks(data, axes):
1002
1004
int_dict = {}
1003
1005
bool_dict = {}
1004
1006
object_dict = {}
1007
+ datetime_dict = {}
1005
1008
for k , v in data .iteritems ():
1006
1009
if issubclass (v .dtype .type , np .floating ):
1007
1010
float_dict [k ] = v
1011
+ elif issubclass (v .dtype .type , np .datetime64 ):
1012
+ datetime_dict [k ] = v
1008
1013
elif issubclass (v .dtype .type , np .integer ):
1009
1014
int_dict [k ] = v
1010
1015
elif v .dtype == np .bool_ :
@@ -1021,6 +1026,10 @@ def form_blocks(data, axes):
1021
1026
int_block = _simple_blockify (int_dict , items , np .int64 )
1022
1027
blocks .append (int_block )
1023
1028
1029
+ if len (datetime_dict ):
1030
+ datetime_block = _simple_blockify (datetime_dict , items , np .datetime64 )
1031
+ blocks .append (datetime_block )
1032
+
1024
1033
if len (bool_dict ):
1025
1034
bool_block = _simple_blockify (bool_dict , items , np .bool_ )
1026
1035
blocks .append (bool_block )
0 commit comments