8
8
import timeit
9
9
10
10
11
- class frame_to_csv (object ):
11
+ class _BenchTeardown (object ):
12
+ """
13
+ base class for teardown method implementation
14
+ """
15
+ fname = None
16
+
17
+ def remove (self , f ):
18
+ try :
19
+ os .remove (f )
20
+ except :
21
+ pass
22
+
23
+ def teardown (self ):
24
+ self .remove (self .fname )
25
+
26
+
27
+ class frame_to_csv (_BenchTeardown ):
12
28
goal_time = 0.2
29
+ fname = '__test__.csv'
13
30
14
31
def setup (self ):
15
32
self .df = DataFrame (np .random .randn (3000 , 30 ))
16
33
17
34
def time_frame_to_csv (self ):
18
- self .df .to_csv ('__test__.csv' )
35
+ self .df .to_csv (self . fname )
19
36
20
37
21
- class frame_to_csv2 (object ):
38
+ class frame_to_csv2 (_BenchTeardown ):
22
39
goal_time = 0.2
40
+ fname = '__test__.csv'
23
41
24
42
def setup (self ):
25
43
self .df = DataFrame ({'A' : range (50000 ), })
@@ -28,22 +46,24 @@ def setup(self):
28
46
self .df ['D' ] = (self .df .A + 3.0 )
29
47
30
48
def time_frame_to_csv2 (self ):
31
- self .df .to_csv ('__test__.csv' )
49
+ self .df .to_csv (self . fname )
32
50
33
51
34
- class frame_to_csv_date_formatting (object ):
52
+ class frame_to_csv_date_formatting (_BenchTeardown ):
35
53
goal_time = 0.2
54
+ fname = '__test__.csv'
36
55
37
56
def setup (self ):
38
57
self .rng = date_range ('1/1/2000' , periods = 1000 )
39
58
self .data = DataFrame (self .rng , index = self .rng )
40
59
41
60
def time_frame_to_csv_date_formatting (self ):
42
- self .data .to_csv ('__test__.csv' , date_format = '%Y%m%d' )
61
+ self .data .to_csv (self . fname , date_format = '%Y%m%d' )
43
62
44
63
45
- class frame_to_csv_mixed (object ):
64
+ class frame_to_csv_mixed (_BenchTeardown ):
46
65
goal_time = 0.2
66
+ fname = '__test__.csv'
47
67
48
68
def setup (self ):
49
69
self .df_float = DataFrame (np .random .randn (5000 , 5 ), dtype = 'float64' , columns = self .create_cols ('float' ))
@@ -55,7 +75,7 @@ def setup(self):
55
75
self .df = concat ([self .df_float , self .df_int , self .df_bool , self .df_object , self .df_dt ], axis = 1 )
56
76
57
77
def time_frame_to_csv_mixed (self ):
58
- self .df .to_csv ('__test__.csv' )
78
+ self .df .to_csv (self . fname )
59
79
60
80
def create_cols (self , name ):
61
81
return [('%s%03d' % (name , i )) for i in range (5 )]
@@ -94,28 +114,30 @@ def time_read_csv_infer_datetime_format_ymd(self):
94
114
read_csv (StringIO (self .data ), header = None , names = ['foo' ], parse_dates = ['foo' ], infer_datetime_format = True )
95
115
96
116
97
- class read_csv_skiprows (object ):
117
+ class read_csv_skiprows (_BenchTeardown ):
98
118
goal_time = 0.2
119
+ fname = '__test__.csv'
99
120
100
121
def setup (self ):
101
122
self .index = tm .makeStringIndex (20000 )
102
123
self .df = DataFrame ({'float1' : randn (20000 ), 'float2' : randn (20000 ), 'string1' : (['foo' ] * 20000 ), 'bool1' : ([True ] * 20000 ), 'int1' : np .random .randint (0 , 200000 , size = 20000 ), }, index = self .index )
103
- self .df .to_csv ('__test__.csv' )
124
+ self .df .to_csv (self . fname )
104
125
105
126
def time_read_csv_skiprows (self ):
106
- read_csv ('__test__.csv' , skiprows = 10000 )
127
+ read_csv (self . fname , skiprows = 10000 )
107
128
108
129
109
- class read_csv_standard (object ):
130
+ class read_csv_standard (_BenchTeardown ):
110
131
goal_time = 0.2
132
+ fname = '__test__.csv'
111
133
112
134
def setup (self ):
113
135
self .index = tm .makeStringIndex (10000 )
114
136
self .df = DataFrame ({'float1' : randn (10000 ), 'float2' : randn (10000 ), 'string1' : (['foo' ] * 10000 ), 'bool1' : ([True ] * 10000 ), 'int1' : np .random .randint (0 , 100000 , size = 10000 ), }, index = self .index )
115
- self .df .to_csv ('__test__.csv' )
137
+ self .df .to_csv (self . fname )
116
138
117
139
def time_read_csv_standard (self ):
118
- read_csv ('__test__.csv' )
140
+ read_csv (self . fname )
119
141
120
142
121
143
class read_parse_dates_iso8601 (object ):
@@ -152,15 +174,16 @@ def time_read_uint64_na_values(self):
152
174
read_csv (StringIO (self .data1 ), header = None , na_values = self .na_values )
153
175
154
176
155
- class write_csv_standard (object ):
177
+ class write_csv_standard (_BenchTeardown ):
156
178
goal_time = 0.2
179
+ fname = '__test__.csv'
157
180
158
181
def setup (self ):
159
182
self .index = tm .makeStringIndex (10000 )
160
183
self .df = DataFrame ({'float1' : randn (10000 ), 'float2' : randn (10000 ), 'string1' : (['foo' ] * 10000 ), 'bool1' : ([True ] * 10000 ), 'int1' : np .random .randint (0 , 100000 , size = 10000 ), }, index = self .index )
161
184
162
185
def time_write_csv_standard (self ):
163
- self .df .to_csv ('__test__.csv' )
186
+ self .df .to_csv (self . fname )
164
187
165
188
166
189
class read_csv_from_s3 (object ):
@@ -195,7 +218,7 @@ def time_read_nrows(self, compression, engine):
195
218
compression = compression , engine = engine )
196
219
197
220
198
- class read_json_lines (object ):
221
+ class read_json_lines (_BenchTeardown ):
199
222
goal_time = 0.2
200
223
fname = "__test__.json"
201
224
@@ -205,12 +228,6 @@ def setup(self):
205
228
self .df = DataFrame ({('float{0}' .format (i ), randn (self .N )) for i in range (self .C )})
206
229
self .df .to_json (self .fname ,orient = "records" ,lines = True )
207
230
208
- def teardown (self ):
209
- try :
210
- os .remove (self .fname )
211
- except :
212
- pass
213
-
214
231
def time_read_json_lines (self ):
215
232
pd .read_json (self .fname , lines = True )
216
233
0 commit comments