def test_dataframe_to_string(): with set_options(formatting={'nrows': 5, 'ncols': 8}): # Test basic df = DataFrame([('a', [1, 2, 3, 4, 5, 6]), ('b', [11, 12, 13, 14, 15, 16])]) string = str(df) print(string) assert string.splitlines()[-1] == '[1 more rows]' # Test skipped columns df = DataFrame([('a', [1, 2, 3, 4, 5, 6]), ('b', [11, 12, 13, 14, 15, 16]), ('c', [11, 12, 13, 14, 15, 16]), ('d', [11, 12, 13, 14, 15, 16])]) string = df.to_string(ncols=3) print(string) assert string.splitlines()[-2] == '[1 more rows]' assert string.splitlines()[-1] == '[1 more columns]' # Test masked df = DataFrame([('a', [1, 2, 3, 4, 5, 6]), ('b', [11, 12, 13, 14, 15, 16])]) data = np.arange(6) mask = np.zeros(1, dtype=np.uint8) mask[0] = 0b00101101 masked = Series.from_masked_array(data, mask) assert masked.null_count == 2 df['c'] = masked # check data values = list(masked) validids = [0, 2, 3, 5] densearray = masked.to_array() np.testing.assert_equal(data[validids], densearray) # valid position is corret for i in validids: assert data[i] == values[i] # null position is correct for i in range(len(values)): if i not in validids: assert values[i] is None got = df.to_string(nrows=None) print(got) expect = ''' a b c 0 1 11 0 1 2 12 2 3 13 2 3 4 14 3 4 5 15 5 6 16 5 ''' # values should match despite whitespace difference assert got.split() == expect.split()
def test_dataframe_empty_to_string(): # Test for printing empty dataframe df = DataFrame() got = df.to_string() print(got) expect = "Empty DataFrame\nColumns: []\nIndex: []\n" # values should match despite whitespace difference assert got.split() == expect.split()
def test_dataframe_emptycolumns_to_string(): # Test for printing dataframe having empty columns df = DataFrame() df['a'] = [] df['b'] = [] got = df.to_string() print(got) expect = "Empty DataFrame\nColumns: ['a', 'b']\nIndex: []\n" # values should match despite whitespace difference assert got.split() == expect.split()
def test_dataframe_copy_shallow(): # Test for copy dataframe using class method df = DataFrame() df['a'] = [1, 2, 3] df2 = df.copy() df2['b'] = [4, 2, 3] got = df.to_string() print(got) expect = ''' a 0 1 1 2 2 3 ''' # values should match despite whitespace difference assert got.split() == expect.split()
def test_dataframe_to_string_wide(): # Test basic df = DataFrame() for i in range(100): df['a{}'.format(i)] = list(range(3)) got = df.to_string(ncols=8) print(got) expect = ''' a0 a1 a2 a3 a4 a5 a6 ... a99 0 0 0 0 0 0 0 0 ... 0 1 1 1 1 1 1 1 1 ... 1 2 2 2 2 2 2 2 2 ... 2 [92 more columns] ''' # values should match despite whitespace difference assert got.split() == expect.split()
def test_dataframe_copy(): # Test for copying the dataframe using python copy pkg from copy import copy df = DataFrame() df['a'] = [1, 2, 3] df2 = copy(df) df2['b'] = [4, 5, 6] got = df.to_string() print(got) expect = ''' a 0 1 1 2 2 3 ''' # values should match despite whitespace difference assert got.split() == expect.split()