4
4
import sys
5
5
import warnings
6
6
7
- from datetime import datetime
7
+ import datetime
8
8
import numpy as np
9
9
10
10
from pandas import (Series , DataFrame , Panel , MultiIndex , bdate_range ,
13
13
import pandas .util .testing as tm
14
14
from pandas .tests .test_series import assert_series_equal
15
15
from pandas .tests .test_frame import assert_frame_equal
16
- from pandas import concat , Timestamp
16
+ from pandas import concat
17
17
18
18
try :
19
19
import tables
@@ -559,6 +559,42 @@ def test_big_table_frame(self):
559
559
560
560
print "\n big_table frame [%s] -> %5.2f" % (rows ,time .time ()- x )
561
561
562
+
563
+ def test_big_table2_frame (self ):
564
+ # this is a really big table: 2.5m rows x 300 float columns, 20 string columns
565
+ raise nose .SkipTest ('no big table2 frame' )
566
+
567
+ # create and write a big table
568
+ print "\n big_table2 start"
569
+ import time
570
+ start_time = time .time ()
571
+ df = DataFrame (np .random .randn (2.5 * 1000 * 1000 , 300 ), index = range (int (2.5 * 1000 * 1000 )), columns = [ 'E%03d' % i for i in xrange (300 ) ])
572
+ for x in range (20 ):
573
+ df ['String%03d' % x ] = 'string%03d' % x
574
+
575
+ print "\n big_table2 frame (creation of df) -> %5.2f" % (time .time ()- start_time )
576
+ start_time = time .time ()
577
+
578
+ from arb .common import profile
579
+ fn = 'big_table2.h5'
580
+
581
+ try :
582
+
583
+ @profile .profile_func ()
584
+ def f ():
585
+ store = HDFStore (fn ,mode = 'w' )
586
+ store .append ('df' ,df )
587
+ store .close ()
588
+
589
+ f ()
590
+ rows = store .root .df .table .nrows
591
+ #recons = store.select('df')
592
+ finally :
593
+ pass
594
+ #os.remove(fn)
595
+
596
+ print "\n big_table2 frame [%s] -> %5.2f" % (rows ,time .time ()- start_time )
597
+
562
598
def test_big_table_panel (self ):
563
599
raise nose .SkipTest ('no big table panel' )
564
600
@@ -665,6 +701,15 @@ def _make_one_p4d():
665
701
self .store .append ('p4d_mixed' , p4d )
666
702
tm .assert_panel4d_equal (self .store .select ('p4d_mixed' ), p4d )
667
703
704
+ def test_unimplemented_dtypes_table_columns (self ):
705
+ #### currently not supported dtypes ####
706
+ from pandas import Timestamp
707
+
708
+ for n ,f in [ ('timestamp' ,Timestamp ('20010102' )), ('unicode' ,u'\u03c3 ' ), ('datetime' ,datetime .datetime (2001 ,1 ,2 )), ('date' ,datetime .date (2001 ,1 ,2 )) ]:
709
+ df = tm .makeDataFrame ()
710
+ df [n ] = f
711
+ self .assertRaises (NotImplementedError , self .store .append , 'df1_%s' % n , df )
712
+
668
713
def test_remove (self ):
669
714
ts = tm .makeTimeSeries ()
670
715
df = tm .makeDataFrame ()
@@ -829,7 +874,7 @@ def test_terms(self):
829
874
('major_axis' , '20121114' ),
830
875
('major_axis' , '>' , '20121114' ),
831
876
(('major_axis' , ['20121114' ,'20121114' ]),),
832
- ('major_axis' , datetime (2012 ,11 ,14 )),
877
+ ('major_axis' , datetime . datetime (2012 ,11 ,14 )),
833
878
'major_axis>20121114' ,
834
879
'major_axis>20121114' ,
835
880
'major_axis>20121114' ,
@@ -936,14 +981,13 @@ def test_index_types(self):
936
981
ser = Series (values , [0 , 'y' ])
937
982
self ._check_roundtrip (ser , func )
938
983
939
- ser = Series (values , [datetime .today (), 0 ])
984
+ ser = Series (values , [datetime .datetime . today (), 0 ])
940
985
self ._check_roundtrip (ser , func )
941
986
942
987
ser = Series (values , ['y' , 0 ])
943
988
self ._check_roundtrip (ser , func )
944
989
945
- from datetime import date
946
- ser = Series (values , [date .today (), 'a' ])
990
+ ser = Series (values , [datetime .date .today (), 'a' ])
947
991
self ._check_roundtrip (ser , func )
948
992
949
993
ser = Series (values , [1.23 , 'b' ])
@@ -955,7 +999,7 @@ def test_index_types(self):
955
999
ser = Series (values , [1 , 5 ])
956
1000
self ._check_roundtrip (ser , func )
957
1001
958
- ser = Series (values , [datetime (2012 , 1 , 1 ), datetime (2012 , 1 , 2 )])
1002
+ ser = Series (values , [datetime . datetime (2012 , 1 , 1 ), datetime . datetime (2012 , 1 , 2 )])
959
1003
self ._check_roundtrip (ser , func )
960
1004
961
1005
def test_timeseries_preepoch (self ):
@@ -1352,7 +1396,7 @@ def test_legacy_table_write(self):
1352
1396
store .close ()
1353
1397
1354
1398
def test_store_datetime_fractional_secs (self ):
1355
- dt = datetime (2012 , 1 , 2 , 3 , 4 , 5 , 123456 )
1399
+ dt = datetime . datetime (2012 , 1 , 2 , 3 , 4 , 5 , 123456 )
1356
1400
series = Series ([0 ], [dt ])
1357
1401
self .store ['a' ] = series
1358
1402
self .assertEquals (self .store ['a' ].index [0 ], dt )
0 commit comments