Skip to content

Commit

Permalink
default to raising error when column to be renamed cannot be found
Browse files Browse the repository at this point in the history
  • Loading branch information
cmacdonald committed Jan 4, 2023
1 parent b0827bf commit d2dfb54
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 3 deletions.
7 changes: 4 additions & 3 deletions pyterrier/apply.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,18 +117,19 @@ def _features(row):
"""
return ApplyDocFeatureTransformer(fn, *args, **kwargs)

def rename(columns : Dict[str,str], *args, **kwargs) -> Transformer:
def rename(columns : Dict[str,str], *args, errors='raise', **kwargs) -> Transformer:
"""
Creates a transformer that renames columns in a dataframe.
Args:
columns(dict): A dictionary mapping from old column name to new column name
columns(dict): A dictionary mapping from old column name to new column name
errors(str): Maps to df.rename() errors kwarg - default to 'raise', alternatively can be 'ignore'
Example::
pipe = pt.BatchRetrieve(index, metadata=["docno", "body"]) >> pt.apply.rename({'body':'text'})
"""
return ApplyGenericTransformer(lambda df: df.rename(columns=columns), *args, **kwargs)
return ApplyGenericTransformer(lambda df: df.rename(columns=columns, errors=errors), *args, **kwargs)

def generic(fn : Callable[[pd.DataFrame], pd.DataFrame], *args, batch_size=None, **kwargs) -> Transformer:
"""
Expand Down
5 changes: 5 additions & 0 deletions tests/test_apply.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,11 @@ def test_rename_columns(self):
rtr = p(testDF)
self.assertTrue("Bla2" in rtr.columns)
self.assertFalse("Bla" in rtr.columns)
with self.assertRaises(KeyError):
testDF2 = pd.DataFrame([["q1", "the bear and the wolf", 1]], columns=["qid", "query", "Bla2"])
rtr = p(testDF2)
p_ignore = pt.apply.rename({'Bla' : "Bla2"}, errors='ignore')
rtr = p_ignore(testDF2)

def test_query_apply(self):
stops=set(["and", "the"])
Expand Down

0 comments on commit d2dfb54

Please sign in to comment.