Skip to content

Commit 9a6810d

Browse files
committed
Merge pull request #2964 from hayd/assert_frame_equal_check_names
ENH Assert_frame_equal check_names to True
2 parents 0e17518 + be3d55d commit 9a6810d

File tree

12 files changed

+87
-64
lines changed

12 files changed

+87
-64
lines changed

pandas/core/frame.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2214,7 +2214,7 @@ def pop(self, item):
22142214
column : Series
22152215
"""
22162216
return NDFrame.pop(self, item)
2217-
2217+
22182218
# to support old APIs
22192219
@property
22202220
def _series(self):

pandas/io/tests/test_excel.py

+18-15
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ def test_parse_cols_int(self):
103103
df2 = df2.reindex(columns=['A', 'B', 'C'])
104104
df3 = xls.parse('Sheet2', skiprows=[1], index_col=0,
105105
parse_dates=True, parse_cols=3)
106-
tm.assert_frame_equal(df, df2)
107-
tm.assert_frame_equal(df3, df2)
106+
tm.assert_frame_equal(df, df2, check_names=False) # TODO add index to xls file)
107+
tm.assert_frame_equal(df3, df2, check_names=False)
108108

109109
def test_parse_cols_list(self):
110110
_skip_if_no_openpyxl()
@@ -122,8 +122,8 @@ def test_parse_cols_list(self):
122122
df3 = xls.parse('Sheet2', skiprows=[1], index_col=0,
123123
parse_dates=True,
124124
parse_cols=[0, 2, 3])
125-
tm.assert_frame_equal(df, df2)
126-
tm.assert_frame_equal(df3, df2)
125+
tm.assert_frame_equal(df, df2, check_names=False) # TODO add index to xls file
126+
tm.assert_frame_equal(df3, df2, check_names=False)
127127

128128
def test_parse_cols_str(self):
129129
_skip_if_no_openpyxl()
@@ -142,8 +142,8 @@ def test_parse_cols_str(self):
142142
df2 = df2.reindex(columns=['A', 'B', 'C'])
143143
df3 = xls.parse('Sheet2', skiprows=[1], index_col=0,
144144
parse_dates=True, parse_cols='A:D')
145-
tm.assert_frame_equal(df, df2)
146-
tm.assert_frame_equal(df3, df2)
145+
tm.assert_frame_equal(df, df2, check_names=False) # TODO add index to xls, read xls ignores index name ?
146+
tm.assert_frame_equal(df3, df2, check_names=False)
147147
del df, df2, df3
148148

149149
df = xls.parse('Sheet1', index_col=0, parse_dates=True,
@@ -153,8 +153,8 @@ def test_parse_cols_str(self):
153153
df3 = xls.parse('Sheet2', skiprows=[1], index_col=0,
154154
parse_dates=True,
155155
parse_cols='A,C,D')
156-
tm.assert_frame_equal(df, df2)
157-
tm.assert_frame_equal(df3, df2)
156+
tm.assert_frame_equal(df, df2, check_names=False) # TODO add index to xls file
157+
tm.assert_frame_equal(df3, df2, check_names=False)
158158
del df, df2, df3
159159

160160
df = xls.parse('Sheet1', index_col=0, parse_dates=True,
@@ -164,8 +164,8 @@ def test_parse_cols_str(self):
164164
df3 = xls.parse('Sheet2', skiprows=[1], index_col=0,
165165
parse_dates=True,
166166
parse_cols='A,C:D')
167-
tm.assert_frame_equal(df, df2)
168-
tm.assert_frame_equal(df3, df2)
167+
tm.assert_frame_equal(df, df2, check_names=False)
168+
tm.assert_frame_equal(df3, df2, check_names=False)
169169

170170
def test_excel_stop_iterator(self):
171171
_skip_if_no_xlrd()
@@ -191,8 +191,8 @@ def test_excel_table(self):
191191
df = xls.parse('Sheet1', index_col=0, parse_dates=True)
192192
df2 = self.read_csv(self.csv1, index_col=0, parse_dates=True)
193193
df3 = xls.parse('Sheet2', skiprows=[1], index_col=0, parse_dates=True)
194-
tm.assert_frame_equal(df, df2)
195-
tm.assert_frame_equal(df3, df2)
194+
tm.assert_frame_equal(df, df2, check_names=False)
195+
tm.assert_frame_equal(df3, df2, check_names=False)
196196

197197
df4 = xls.parse('Sheet1', index_col=0, parse_dates=True,
198198
skipfooter=1)
@@ -224,8 +224,9 @@ def test_xlsx_table(self):
224224
df = xlsx.parse('Sheet1', index_col=0, parse_dates=True)
225225
df2 = self.read_csv(self.csv1, index_col=0, parse_dates=True)
226226
df3 = xlsx.parse('Sheet2', skiprows=[1], index_col=0, parse_dates=True)
227-
tm.assert_frame_equal(df, df2)
228-
tm.assert_frame_equal(df3, df2)
227+
228+
tm.assert_frame_equal(df, df2, check_names=False) # TODO add index to xlsx file
229+
tm.assert_frame_equal(df3, df2, check_names=False)
229230

230231
df4 = xlsx.parse('Sheet1', index_col=0, parse_dates=True,
231232
skipfooter=1)
@@ -632,7 +633,9 @@ def _check_excel_multiindex_dates(self, ext):
632633
tsframe.to_excel(path, 'test1', index_label=['time', 'foo'])
633634
reader = ExcelFile(path)
634635
recons = reader.parse('test1', index_col=[0, 1])
635-
tm.assert_frame_equal(tsframe, recons)
636+
637+
tm.assert_frame_equal(tsframe, recons, check_names=False)
638+
self.assertEquals(recons.index.names, ['time', 'foo'])
636639

637640
# infer index
638641
tsframe.to_excel(path, 'test1')

pandas/io/tests/test_parsers.py

+8-5
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,7 @@ def test_skiprows_bug(self):
514514
columns=[1, 2, 3],
515515
index=[datetime(2000, 1, 1), datetime(2000, 1, 2),
516516
datetime(2000, 1, 3)])
517+
expected.index.name = 0
517518
tm.assert_frame_equal(data, expected)
518519
tm.assert_frame_equal(data, data2)
519520

@@ -627,7 +628,7 @@ def test_yy_format(self):
627628
idx = DatetimeIndex([datetime(2009, 1, 31, 0, 10, 0),
628629
datetime(2009, 2, 28, 10, 20, 0),
629630
datetime(2009, 3, 31, 8, 30, 0)]).asobject
630-
idx.name = 'date'
631+
idx.name = 'date_time'
631632
xp = DataFrame({'B': [1, 3, 5], 'C': [2, 4, 6]}, idx)
632633
tm.assert_frame_equal(rs, xp)
633634

@@ -636,7 +637,7 @@ def test_yy_format(self):
636637
idx = DatetimeIndex([datetime(2009, 1, 31, 0, 10, 0),
637638
datetime(2009, 2, 28, 10, 20, 0),
638639
datetime(2009, 3, 31, 8, 30, 0)]).asobject
639-
idx.name = 'date'
640+
idx.name = 'date_time'
640641
xp = DataFrame({'B': [1, 3, 5], 'C': [2, 4, 6]}, idx)
641642
tm.assert_frame_equal(rs, xp)
642643

@@ -967,7 +968,7 @@ def test_multi_index_no_level_names(self):
967968
df = self.read_csv(StringIO(no_header), index_col=[0, 1],
968969
header=None, names=names)
969970
expected = self.read_csv(StringIO(data), index_col=[0, 1])
970-
tm.assert_frame_equal(df, expected)
971+
tm.assert_frame_equal(df, expected, check_names=False)
971972

972973
# 2 implicit first cols
973974
df2 = self.read_csv(StringIO(data2))
@@ -977,7 +978,7 @@ def test_multi_index_no_level_names(self):
977978
df = self.read_csv(StringIO(no_header), index_col=[1, 0], names=names,
978979
header=None)
979980
expected = self.read_csv(StringIO(data), index_col=[1, 0])
980-
tm.assert_frame_equal(df, expected)
981+
tm.assert_frame_equal(df, expected, check_names=False)
981982

982983
def test_multi_index_parse_dates(self):
983984
data = """index1,index2,A,B,C
@@ -1162,11 +1163,13 @@ def test_na_value_dict(self):
11621163

11631164
xp = DataFrame({'b': [np.nan], 'd': [5]},
11641165
MultiIndex.from_tuples([(0, 1)]))
1166+
xp.index.names = ['a', 'c']
11651167
df = self.read_csv(StringIO(data), na_values={}, index_col=[0, 2])
11661168
tm.assert_frame_equal(df, xp)
11671169

11681170
xp = DataFrame({'b': [np.nan], 'd': [5]},
11691171
MultiIndex.from_tuples([(0, 1)]))
1172+
xp.index.names = ['a', 'c']
11701173
df = self.read_csv(StringIO(data), na_values={}, index_col=['a', 'c'])
11711174
tm.assert_frame_equal(df, xp)
11721175

@@ -1249,7 +1252,7 @@ def test_multiple_date_cols_index(self):
12491252
tm.assert_frame_equal(df2, df)
12501253

12511254
df3 = self.read_csv(StringIO(data), parse_dates=[[1, 2]], index_col=0)
1252-
tm.assert_frame_equal(df3, df)
1255+
tm.assert_frame_equal(df3, df, check_names=False)
12531256

12541257
def test_multiple_date_cols_chunked(self):
12551258
df = self.read_csv(StringIO(self.ts_data), parse_dates={

pandas/io/tests/test_sql.py

+1
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@ def _check_roundtrip(self, frame):
174174
index_col='Idx')
175175
expected = frame.copy()
176176
expected.index = Index(range(len(frame2))) + 10
177+
expected.index.name = 'Idx'
177178
tm.assert_frame_equal(expected, result)
178179

179180
def test_tquery(self):

pandas/tests/test_frame.py

+29-21
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ def test_getitem_list(self):
133133
result2 = self.frame[Index(['B', 'A'])]
134134

135135
expected = self.frame.ix[:, ['B', 'A']]
136+
expected.columns.name = 'foo'
137+
136138
assert_frame_equal(result, expected)
137139
assert_frame_equal(result2, expected)
138140

@@ -1678,7 +1680,8 @@ def test_join_index_series(self):
16781680
df = self.frame.copy()
16791681
s = df.pop(self.frame.columns[-1])
16801682
joined = df.join(s)
1681-
assert_frame_equal(joined, self.frame)
1683+
1684+
assert_frame_equal(joined, self.frame, check_names=False) # TODO should this check_names ?
16821685

16831686
s.name = None
16841687
self.assertRaises(Exception, df.join, s)
@@ -1896,7 +1899,7 @@ def test_set_index_pass_arrays(self):
18961899
# multiple columns
18971900
result = df.set_index(['A', df['B'].values], drop=False)
18981901
expected = df.set_index(['A', 'B'], drop=False)
1899-
assert_frame_equal(result, expected)
1902+
assert_frame_equal(result, expected, check_names=False) # TODO should set_index check_names ?
19001903

19011904
def test_set_index_cast_datetimeindex(self):
19021905
df = DataFrame({'A': [datetime(2000, 1, 1) + timedelta(i)
@@ -3721,12 +3724,15 @@ def test_delitem(self):
37213724
self.assert_('A' not in self.frame)
37223725

37233726
def test_pop(self):
3727+
self.frame.columns.name = 'baz'
3728+
37243729
A = self.frame.pop('A')
37253730
self.assert_('A' not in self.frame)
37263731

37273732
self.frame['foo'] = 'bar'
37283733
foo = self.frame.pop('foo')
37293734
self.assert_('foo' not in self.frame)
3735+
# TODO self.assert_(self.frame.columns.name == 'baz')
37303736

37313737
def test_pop_non_unique_cols(self):
37323738
df = DataFrame({0: [0, 1], 1: [0, 1], 2: [4, 5]})
@@ -4410,7 +4416,7 @@ def test_to_csv_from_csv(self):
44104416
df.to_csv(path)
44114417
result = DataFrame.from_csv(path, index_col=[0, 1, 2],
44124418
parse_dates=False)
4413-
assert_frame_equal(result, df)
4419+
assert_frame_equal(result, df, check_names=False) # TODO from_csv names index ['Unnamed: 1', 'Unnamed: 2'] should it ?
44144420

44154421
# column aliases
44164422
col_aliases = Index(['AA', 'X', 'Y', 'Z'])
@@ -4437,8 +4443,8 @@ def test_to_csv_from_csv_w_some_infs(self):
44374443
self.frame.to_csv(path)
44384444
recons = DataFrame.from_csv(path)
44394445

4440-
assert_frame_equal(self.frame, recons)
4441-
assert_frame_equal(np.isinf(self.frame), np.isinf(recons))
4446+
assert_frame_equal(self.frame, recons, check_names=False) # TODO to_csv drops column name
4447+
assert_frame_equal(np.isinf(self.frame), np.isinf(recons), check_names=False)
44424448

44434449
try:
44444450
os.remove(path)
@@ -4457,8 +4463,8 @@ def test_to_csv_from_csv_w_all_infs(self):
44574463
self.frame.to_csv(path)
44584464
recons = DataFrame.from_csv(path)
44594465

4460-
assert_frame_equal(self.frame, recons)
4461-
assert_frame_equal(np.isinf(self.frame), np.isinf(recons))
4466+
assert_frame_equal(self.frame, recons, check_names=False) # TODO to_csv drops column name
4467+
assert_frame_equal(np.isinf(self.frame), np.isinf(recons), check_names=False)
44624468

44634469
os.remove(path)
44644470

@@ -4477,7 +4483,7 @@ def test_to_csv_multiindex(self):
44774483
frame.to_csv(path)
44784484
df = DataFrame.from_csv(path, index_col=[0, 1], parse_dates=False)
44794485

4480-
assert_frame_equal(frame, df)
4486+
assert_frame_equal(frame, df, check_names=False) # TODO to_csv drops column name
44814487
self.assertEqual(frame.index.names, df.index.names)
44824488
self.frame.index = old_index # needed if setUP becomes a classmethod
44834489

@@ -4489,7 +4495,7 @@ def test_to_csv_multiindex(self):
44894495

44904496
tsframe.to_csv(path, index_label=['time', 'foo'])
44914497
recons = DataFrame.from_csv(path, index_col=[0, 1])
4492-
assert_frame_equal(tsframe, recons)
4498+
assert_frame_equal(tsframe, recons, check_names=False) # TODO to_csv drops column name
44934499

44944500
# do not load index
44954501
tsframe.to_csv(path)
@@ -4546,7 +4552,7 @@ def test_to_csv_bug(self):
45464552
newdf.to_csv(path)
45474553

45484554
recons = pan.read_csv(path, index_col=0)
4549-
assert_frame_equal(recons, newdf)
4555+
assert_frame_equal(recons, newdf, check_names=False) # don't check_names as t != 1
45504556

45514557
os.remove(path)
45524558

@@ -4582,7 +4588,7 @@ def test_to_csv_stringio(self):
45824588
self.frame.to_csv(buf)
45834589
buf.seek(0)
45844590
recons = pan.read_csv(buf, index_col=0)
4585-
assert_frame_equal(recons, self.frame)
4591+
assert_frame_equal(recons, self.frame, check_names=False) # TODO to_csv drops column name
45864592

45874593
def test_to_csv_float_format(self):
45884594
filename = '__tmp_to_csv_float_format__.csv'
@@ -5868,6 +5874,7 @@ def test_pivot(self):
58685874
'One': {'A': 1., 'B': 2., 'C': 3.},
58695875
'Two': {'A': 1., 'B': 2., 'C': 3.}
58705876
})
5877+
expected.index.name, expected.columns.name = 'index', 'columns'
58715878

58725879
assert_frame_equal(pivoted, expected)
58735880

@@ -5896,7 +5903,7 @@ def test_pivot_empty(self):
58965903
df = DataFrame({}, columns=['a', 'b', 'c'])
58975904
result = df.pivot('a', 'b', 'c')
58985905
expected = DataFrame({})
5899-
assert_frame_equal(result, expected)
5906+
assert_frame_equal(result, expected, check_names=False)
59005907

59015908
def test_pivot_integer_bug(self):
59025909
df = DataFrame(data=[("A", "1", "A1"), ("B", "2", "B2")])
@@ -6401,10 +6408,9 @@ def test_rename(self):
64016408

64026409
assert_frame_equal(renamed, renamed2)
64036410
assert_frame_equal(renamed2.rename(columns=str.upper),
6404-
self.frame)
6411+
self.frame, check_names=False)
64056412

64066413
# index
6407-
64086414
data = {
64096415
'A': {'foo': 0, 'bar': 1}
64106416
}
@@ -6953,7 +6959,8 @@ def test_select(self):
69536959

69546960
result = self.frame.select(lambda x: x in ('B', 'D'), axis=1)
69556961
expected = self.frame.reindex(columns=['B', 'D'])
6956-
assert_frame_equal(result, expected)
6962+
6963+
assert_frame_equal(result, expected, check_names=False) # TODO should reindex check_names?
69576964

69586965
def test_sort_index(self):
69596966
frame = DataFrame(np.random.randn(4, 4), index=[1, 2, 3, 4],
@@ -8238,30 +8245,31 @@ def test_reset_index(self):
82388245
# only remove certain columns
82398246
frame = self.frame.reset_index().set_index(['index', 'A', 'B'])
82408247
rs = frame.reset_index(['A', 'B'])
8241-
assert_frame_equal(rs, self.frame)
8248+
8249+
assert_frame_equal(rs, self.frame, check_names=False) # TODO should reset_index check_names ?
82428250

82438251
rs = frame.reset_index(['index', 'A', 'B'])
8244-
assert_frame_equal(rs, self.frame.reset_index())
8252+
assert_frame_equal(rs, self.frame.reset_index(), check_names=False)
82458253

82468254
rs = frame.reset_index(['index', 'A', 'B'])
8247-
assert_frame_equal(rs, self.frame.reset_index())
8255+
assert_frame_equal(rs, self.frame.reset_index(), check_names=False)
82488256

82498257
rs = frame.reset_index('A')
82508258
xp = self.frame.reset_index().set_index(['index', 'B'])
8251-
assert_frame_equal(rs, xp)
8259+
assert_frame_equal(rs, xp, check_names=False)
82528260

82538261
# test resetting in place
82548262
df = self.frame.copy()
82558263
resetted = self.frame.reset_index()
82568264
df.reset_index(inplace=True)
8257-
assert_frame_equal(df, resetted)
8265+
assert_frame_equal(df, resetted, check_names=False)
82588266

82598267
frame = self.frame.reset_index().set_index(['index', 'A', 'B'])
82608268
rs = frame.reset_index('A', drop=True)
82618269
xp = self.frame.copy()
82628270
del xp['A']
82638271
xp = xp.set_index(['B'], append=True)
8264-
assert_frame_equal(rs, xp)
8272+
assert_frame_equal(rs, xp, check_names=False)
82658273

82668274
def test_reset_index_right_dtype(self):
82678275
time = np.arange(0.0, 10, np.sqrt(2) / 2)

0 commit comments

Comments
 (0)