3
3
4
4
import xarray as xr
5
5
6
- from . import parameterized
6
+ from . import parameterized , requires_dask
7
7
8
8
9
9
class MultiIndexSeries :
@@ -24,3 +24,38 @@ def setup(self, dtype, subset):
24
24
@parameterized (["dtype" , "subset" ], ([int , float ], [True , False ]))
25
25
def time_from_series (self , dtype , subset ):
26
26
xr .DataArray .from_series (self .series )
27
+
28
+
29
+ class ToDataFrame :
30
+ def setup (self , * args , ** kwargs ):
31
+ xp = kwargs .get ("xp" , np )
32
+ random_kws = kwargs .get ("random_kws" , {})
33
+ method = kwargs .get ("method" , "to_dataframe" )
34
+
35
+ dim1 = 10_000
36
+ dim2 = 10_000
37
+ ds = xr .Dataset (
38
+ {
39
+ "x" : xr .DataArray (
40
+ data = xp .random .random ((dim1 , dim2 ), ** random_kws ),
41
+ dims = ["dim1" , "dim2" ],
42
+ coords = {"dim1" : np .arange (0 , dim1 ), "dim2" : np .arange (0 , dim2 )},
43
+ )
44
+ }
45
+ )
46
+ self .to_frame = getattr (ds , method )
47
+
48
+ def time_to_dataframe (self ):
49
+ self .to_frame ()
50
+
51
+ def peakmem_to_dataframe (self ):
52
+ self .to_frame ()
53
+
54
+
55
+ class ToDataFrameDask (ToDataFrame ):
56
+ def setup (self , * args , ** kwargs ):
57
+ requires_dask ()
58
+
59
+ import dask .array as da
60
+
61
+ super ().setup (xp = da , random_kws = dict (chunks = 5000 ), method = "to_dask_dataframe" )
0 commit comments