31
31
32
32
class TestDataFrameToCSV (TestData ):
33
33
34
+ def read_csv (self , path , ** kwargs ):
35
+ params = dict (index_col = 0 , parse_dates = True )
36
+ params .update (** kwargs )
37
+
38
+ return pd .read_csv (path , ** params )
39
+
40
+ def test_from_csv_deprecation (self ):
41
+ # see gh-17812
42
+ with ensure_clean ('__tmp_from_csv_deprecation__' ) as path :
43
+ self .tsframe .to_csv (path )
44
+
45
+ with tm .assert_produces_warning (FutureWarning ,
46
+ check_stacklevel = False ):
47
+ depr_recons = DataFrame .from_csv (path )
48
+ assert_frame_equal (self .tsframe , depr_recons )
49
+
34
50
def test_to_csv_from_csv1 (self ):
35
51
36
52
with ensure_clean ('__tmp_to_csv_from_csv1__' ) as path :
@@ -43,24 +59,25 @@ def test_to_csv_from_csv1(self):
43
59
44
60
# test roundtrip
45
61
self .tsframe .to_csv (path )
46
- recons = DataFrame .from_csv (path )
47
-
62
+ recons = self .read_csv (path )
48
63
assert_frame_equal (self .tsframe , recons )
49
64
50
65
self .tsframe .to_csv (path , index_label = 'index' )
51
- recons = DataFrame .from_csv (path , index_col = None )
66
+ recons = self .read_csv (path , index_col = None )
67
+
52
68
assert (len (recons .columns ) == len (self .tsframe .columns ) + 1 )
53
69
54
70
# no index
55
71
self .tsframe .to_csv (path , index = False )
56
- recons = DataFrame . from_csv (path , index_col = None )
72
+ recons = self . read_csv (path , index_col = None )
57
73
assert_almost_equal (self .tsframe .values , recons .values )
58
74
59
75
# corner case
60
76
dm = DataFrame ({'s1' : Series (lrange (3 ), lrange (3 )),
61
77
's2' : Series (lrange (2 ), lrange (2 ))})
62
78
dm .to_csv (path )
63
- recons = DataFrame .from_csv (path )
79
+
80
+ recons = self .read_csv (path )
64
81
assert_frame_equal (dm , recons )
65
82
66
83
def test_to_csv_from_csv2 (self ):
@@ -71,27 +88,26 @@ def test_to_csv_from_csv2(self):
71
88
df = DataFrame (np .random .randn (3 , 3 ), index = ['a' , 'a' , 'b' ],
72
89
columns = ['x' , 'y' , 'z' ])
73
90
df .to_csv (path )
74
- result = DataFrame . from_csv (path )
91
+ result = self . read_csv (path )
75
92
assert_frame_equal (result , df )
76
93
77
94
midx = MultiIndex .from_tuples (
78
95
[('A' , 1 , 2 ), ('A' , 1 , 2 ), ('B' , 1 , 2 )])
79
96
df = DataFrame (np .random .randn (3 , 3 ), index = midx ,
80
97
columns = ['x' , 'y' , 'z' ])
98
+
81
99
df .to_csv (path )
82
- result = DataFrame .from_csv (path , index_col = [0 , 1 , 2 ],
83
- parse_dates = False )
84
- # TODO from_csv names index ['Unnamed: 1', 'Unnamed: 2'] should it
85
- # ?
100
+ result = self .read_csv (path , index_col = [0 , 1 , 2 ],
101
+ parse_dates = False )
86
102
assert_frame_equal (result , df , check_names = False )
87
103
88
104
# column aliases
89
105
col_aliases = Index (['AA' , 'X' , 'Y' , 'Z' ])
90
106
self .frame2 .to_csv (path , header = col_aliases )
91
- rs = DataFrame .from_csv (path )
107
+
108
+ rs = self .read_csv (path )
92
109
xp = self .frame2 .copy ()
93
110
xp .columns = col_aliases
94
-
95
111
assert_frame_equal (xp , rs )
96
112
97
113
pytest .raises (ValueError , self .frame2 .to_csv , path ,
@@ -231,8 +247,9 @@ def make_dtnat_arr(n, nnat=None):
231
247
with ensure_clean ('1.csv' ) as pth :
232
248
df = DataFrame (dict (a = s1 , b = s2 ))
233
249
df .to_csv (pth , chunksize = chunksize )
234
- recons = DataFrame .from_csv (pth )._convert (datetime = True ,
235
- coerce = True )
250
+
251
+ recons = self .read_csv (pth )._convert (datetime = True ,
252
+ coerce = True )
236
253
assert_frame_equal (df , recons , check_names = False ,
237
254
check_less_precise = True )
238
255
@@ -247,16 +264,17 @@ def _do_test(df, r_dtype=None, c_dtype=None,
247
264
if rnlvl is not None :
248
265
kwargs ['index_col' ] = lrange (rnlvl )
249
266
kwargs ['header' ] = lrange (cnlvl )
267
+
250
268
with ensure_clean ('__tmp_to_csv_moar__' ) as path :
251
269
df .to_csv (path , encoding = 'utf8' ,
252
270
chunksize = chunksize , tupleize_cols = False )
253
- recons = DataFrame .from_csv (
254
- path , tupleize_cols = False , ** kwargs )
271
+ recons = self .read_csv (path , tupleize_cols = False , ** kwargs )
255
272
else :
256
273
kwargs ['header' ] = 0
274
+
257
275
with ensure_clean ('__tmp_to_csv_moar__' ) as path :
258
276
df .to_csv (path , encoding = 'utf8' , chunksize = chunksize )
259
- recons = DataFrame . from_csv (path , ** kwargs )
277
+ recons = self . read_csv (path , ** kwargs )
260
278
261
279
def _to_uni (x ):
262
280
if not isinstance (x , compat .text_type ):
@@ -398,7 +416,7 @@ def test_to_csv_from_csv_w_some_infs(self):
398
416
399
417
with ensure_clean () as path :
400
418
self .frame .to_csv (path )
401
- recons = DataFrame . from_csv (path )
419
+ recons = self . read_csv (path )
402
420
403
421
# TODO to_csv drops column name
404
422
assert_frame_equal (self .frame , recons , check_names = False )
@@ -413,7 +431,7 @@ def test_to_csv_from_csv_w_all_infs(self):
413
431
414
432
with ensure_clean () as path :
415
433
self .frame .to_csv (path )
416
- recons = DataFrame . from_csv (path )
434
+ recons = self . read_csv (path )
417
435
418
436
# TODO to_csv drops column name
419
437
assert_frame_equal (self .frame , recons , check_names = False )
@@ -448,11 +466,13 @@ def test_to_csv_headers(self):
448
466
to_df = DataFrame ([[1 , 2 ], [3 , 4 ]], columns = ['X' , 'Y' ])
449
467
with ensure_clean ('__tmp_to_csv_headers__' ) as path :
450
468
from_df .to_csv (path , header = ['X' , 'Y' ])
451
- recons = DataFrame .from_csv (path )
469
+ recons = self .read_csv (path )
470
+
452
471
assert_frame_equal (to_df , recons )
453
472
454
473
from_df .to_csv (path , index = False , header = ['X' , 'Y' ])
455
- recons = DataFrame .from_csv (path )
474
+ recons = self .read_csv (path )
475
+
456
476
recons .reset_index (inplace = True )
457
477
assert_frame_equal (to_df , recons )
458
478
@@ -471,13 +491,15 @@ def test_to_csv_multiindex(self):
471
491
472
492
# round trip
473
493
frame .to_csv (path )
474
- df = DataFrame .from_csv (path , index_col = [0 , 1 ], parse_dates = False )
494
+
495
+ df = self .read_csv (path , index_col = [0 , 1 ],
496
+ parse_dates = False )
475
497
476
498
# TODO to_csv drops column name
477
499
assert_frame_equal (frame , df , check_names = False )
478
500
assert frame .index .names == df .index .names
479
501
480
- # needed if setUP becomes a classmethod
502
+ # needed if setUp becomes a class method
481
503
self .frame .index = old_index
482
504
483
505
# try multiindex with dates
@@ -487,21 +509,22 @@ def test_to_csv_multiindex(self):
487
509
tsframe .index = MultiIndex .from_arrays (new_index )
488
510
489
511
tsframe .to_csv (path , index_label = ['time' , 'foo' ])
490
- recons = DataFrame .from_csv (path , index_col = [0 , 1 ])
512
+ recons = self .read_csv (path , index_col = [0 , 1 ])
513
+
491
514
# TODO to_csv drops column name
492
515
assert_frame_equal (tsframe , recons , check_names = False )
493
516
494
517
# do not load index
495
518
tsframe .to_csv (path )
496
- recons = DataFrame . from_csv (path , index_col = None )
519
+ recons = self . read_csv (path , index_col = None )
497
520
assert len (recons .columns ) == len (tsframe .columns ) + 2
498
521
499
522
# no index
500
523
tsframe .to_csv (path , index = False )
501
- recons = DataFrame . from_csv (path , index_col = None )
524
+ recons = self . read_csv (path , index_col = None )
502
525
assert_almost_equal (recons .values , self .tsframe .values )
503
526
504
- # needed if setUP becomes classmethod
527
+ # needed if setUp becomes class method
505
528
self .tsframe .index = old_index
506
529
507
530
with ensure_clean ('__tmp_to_csv_multiindex__' ) as path :
@@ -606,7 +629,8 @@ def _make_frame(names=None):
606
629
with ensure_clean ('__tmp_to_csv_multiindex__' ) as path :
607
630
# empty
608
631
tsframe [:0 ].to_csv (path )
609
- recons = DataFrame .from_csv (path )
632
+ recons = self .read_csv (path )
633
+
610
634
exp = tsframe [:0 ]
611
635
exp .index = []
612
636
@@ -631,7 +655,7 @@ def test_to_csv_withcommas(self):
631
655
632
656
with ensure_clean ('__tmp_to_csv_withcommas__.csv' ) as path :
633
657
df .to_csv (path )
634
- df2 = DataFrame . from_csv (path )
658
+ df2 = self . read_csv (path )
635
659
assert_frame_equal (df2 , df )
636
660
637
661
def test_to_csv_mixed (self ):
@@ -746,7 +770,7 @@ def test_to_csv_wide_frame_formatting(self):
746
770
747
771
def test_to_csv_bug (self ):
748
772
f1 = StringIO ('a,1.0\n b,2.0' )
749
- df = DataFrame . from_csv (f1 , header = None )
773
+ df = self . read_csv (f1 , header = None )
750
774
newdf = DataFrame ({'t' : df [df .columns [0 ]]})
751
775
752
776
with ensure_clean () as path :
0 commit comments