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