def test_lookup_transform(data: pd.DataFrame, lookup_key: str) -> None: lookup = pd.DataFrame({lookup_key: list("ABCD"), "z": [3, 1, 4, 5]}) transform = { "lookup": "c", "from": {"data": to_values(lookup), "key": lookup_key, "fields": ["z"]}, } out1 = altair_transform.apply(data, transform) out2 = pd.merge(data, lookup, left_on="c", right_on=lookup_key) if lookup_key != "c": out2 = out2.drop(lookup_key, axis=1) assert_frame_equal(out1, out2)
def test_lookup_transform(data, lookup_key): lookup = pd.DataFrame({lookup_key: list('ABCD'), 'z': [3, 1, 4, 5]}) transform = { 'lookup': 'c', 'from': { 'data': to_values(lookup), 'key': lookup_key, 'fields': ['z'] } } out1 = apply(data, transform) out2 = pd.merge(data, lookup, left_on='c', right_on=lookup_key) if lookup_key != 'c': out2 = out2.drop(lookup_key, axis=1) assert out1.equals(out2)
def test_lookup_transform_default( data: pd.DataFrame, lookup_key: str, default: Optional[str] ) -> None: lookup = pd.DataFrame({lookup_key: list("ABC"), "z": [3, 1, 4]}) transform = { "lookup": "c", "from": {"data": to_values(lookup), "key": lookup_key, "fields": ["z"]}, } if default is not None: transform["default"] = default out = altair_transform.apply(data, transform) undef = out["c"] == "D" if default is None: assert out.loc[undef, "z"].isnull().all() else: assert (out.loc[undef, "z"] == default).all()
def test_lookup_transform_default(data, lookup_key, default): lookup = pd.DataFrame({lookup_key: list('ABC'), 'z': [3, 1, 4]}) transform = { 'lookup': 'c', 'from': { 'data': to_values(lookup), 'key': lookup_key, 'fields': ['z'] } } if default is not None: transform['default'] = default out = apply(data, transform) undef = (out['c'] == 'D') if default is None: assert out.loc[undef, 'z'].isnull().all() else: assert (out.loc[undef, 'z'] == default).all()
def lookup_data() -> Dict[str, Any]: rand = np.random.RandomState(0) df = pd.DataFrame( {"y": rand.randint(0, 50, 4), "d": list("ABCD"), "e": list("ACDE")} ) return to_values(df)