def test_mutate_pandasString_ifelse(self): data = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000], 'z': [True, False, False]}) pd.testing.assert_frame_equal(mutate(data, 'z = if_else(x == 1, True, False)'), expected)
def test_mutate_pandasString_leadDefaultEquals(self): data = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000], 'z': [2, 3, 0]}) pd.testing.assert_frame_equal(mutate(data, 'z = lead(x, default=0)'), expected)
def test_mutate_pandasString_leadNoKwargs(self): data = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000], 'z': [3, 0, 0]}) pd.testing.assert_frame_equal(mutate(data, 'z = lead(x, 2, 0)'), expected)
def test_mutate_pandasString_lag(self): data = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000], 'z': [np.nan, 1.0, 2.0]}) pd.testing.assert_frame_equal(mutate(data, 'z = lag(x)'), expected)
def test_mutate_pandasString_leadNEquals(self): data = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000], 'z': [3.00, np.nan, np.nan]}) pd.testing.assert_frame_equal(mutate(data, 'z = lead(x, n=2)'), expected)
def test_mutate_pandasString_log(self): data = pd.DataFrame({'x': [1, 2, 3], 'y1': [10, 9, 8]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y1': [10, 9, 8], 'z': [2.302585, 2.197225, 2.079442]}) pd.testing.assert_frame_equal(mutate(data, 'z = log(y1)'), expected)
def test_mutate_pandasString_cummax(self): data = pd.DataFrame({'x': [3, 4, 2, 5, 1], 'y': [10, 100, 1000, 10000, 100000]}) expected = pd.DataFrame({'x': [3, 4, 2, 5, 1], 'y': [10, 100, 1000, 10000, 100000], 'z': [3, 4, 4, 5, 5]}) pd.testing.assert_frame_equal(mutate(data, 'z = cummax(x)'), expected)
def test_mutate_pandasString_sqrt(self): data = pd.DataFrame({'x': [1, 4, 9], 'y': [10, 9, 8]}) expected = pd.DataFrame({'x': [1, 4, 9], 'y': [10, 9, 8], 'z': [1.0, 2.0, 3.0]}) pd.testing.assert_frame_equal(mutate(data, "z = sqrt(x)"), expected)
def test_mutate_pandasString_max(self): data = pd.DataFrame({'x': [-1, 4, -9], 'y': [10, 9, 8]}) expected = pd.DataFrame({'x': [-1, 4, -9], 'y': [10, 9, 8], 'z': [10, 10, 10]}) pd.testing.assert_frame_equal(mutate(data, "z = max(y)"), expected)
def test_mutate_pandasString_arctanh(self): data = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 9, 8]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 9, 8], 'z': [1.0, 2.0, 3.0]}) pd.testing.assert_frame_equal(mutate(data, "z = arctanh(tanh(x))"), expected)
def test_mutate_pandasString_round(self): data = pd.DataFrame({'x': [1.2, 2.5, 3.7], 'y': [10, 9, 8]}) expected = pd.DataFrame({'x': [1.2, 2.5, 3.7], 'y': [10, 9, 8], 'z': [1.0, 2.0, 4.0]}) pd.testing.assert_frame_equal(mutate(data, "z = round(x, 0)"), expected)
def test_mutate_pandasString_arctan(self): data = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 9, 8]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 9, 8], 'z': [1.000000, -1.141593, -0.141593]}) pd.testing.assert_frame_equal(mutate(data, "z = arctan(tan(x))"), expected)
def test_mutate_pandasString_log10(self): data = pd.DataFrame({'x': [1, 2, 3], 'yY': [10, 100, 1000]}) expected = pd.DataFrame({'x': [1, 2, 3], 'yY': [10, 100, 1000], 'z': [1.0, 2.0, 3.0]}) pd.testing.assert_frame_equal(mutate(data, 'z = log10(yY)'), expected)
def test_mutate_pandasString_log2(self): data = pd.DataFrame({'x': [1, 2, 3], 'y_1': [2, 4, 8]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y_1': [2, 4, 8], 'z': [1.0, 2.0, 3.0]}) pd.testing.assert_frame_equal(mutate(data, 'z = log2(y_1)'), expected)
def test_mutate_pandasString_naif(self): data = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000], 'z': [np.nan, 2, 3]}) pd.testing.assert_frame_equal(mutate(data, 'z = na_if(x, 1)'), expected)
def test_mutate_pandasString_cumsum(self): data = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, 1000], 'z': [1, 3, 6]}) pd.testing.assert_frame_equal(mutate(data, 'z = cumsum(x)'), expected)
def test_mutate_pandasString_coalesce(self): data = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, np.nan]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 100, np.nan], 'z': [10., 100., 1000.]}) pd.testing.assert_frame_equal(mutate(data, 'z = coalesce(y, 1000)'), expected)
def test_mutate_pandasString(self): data = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 9, 8]}) expected = pd.DataFrame({'x': [1, 2, 3], 'y': [10, 9, 8], 'z': [11, 11, 11]}) pd.testing.assert_frame_equal(mutate(data, 'z = x + y'), expected)