Path: blob/main/py-polars/tests/unit/operations/test_rename.py
6939 views
import polars as pl1from polars.testing import assert_frame_equal234def test_rename_invalidate_cache_15884() -> None:5assert (6pl.LazyFrame({"a": [1], "b": [1]})7.rename({"b": "b1"}) # to cache schema8.with_columns(9c=pl.col("b1").drop_nulls(), d=pl.col("b1").drop_nulls()10) # to trigger CSE11.select("c", "d") # to trigger project push down12).collect().to_dict(as_series=False) == {"c": [1], "d": [1]}131415def test_rename_lf() -> None:16ldf = pl.LazyFrame({"a": [1], "b": [2], "c": [3]})17out = ldf.rename({"a": "foo", "b": "bar"}).collect()18assert out.columns == ["foo", "bar", "c"]192021def test_with_column_renamed_lf(fruits_cars: pl.DataFrame) -> None:22res = fruits_cars.lazy().rename({"A": "C"}).collect()23assert res.columns[0] == "C"242526def test_rename_lf_lambda() -> None:27ldf = pl.LazyFrame({"a": [1], "b": [2], "c": [3]})28out = ldf.rename(29lambda col: "foo" if col == "a" else "bar" if col == "b" else col30).collect()31assert out.columns == ["foo", "bar", "c"]323334def test_with_column_renamed() -> None:35df = pl.DataFrame({"a": [1, 2], "b": [3, 4]})36result = df.rename({"b": "c"})37expected = pl.DataFrame({"a": [1, 2], "c": [3, 4]})38assert_frame_equal(result, expected)394041def test_rename_swap() -> None:42df = pl.DataFrame(43{44"a": [1, 2, 3, 4, 5],45"b": [5, 4, 3, 2, 1],46}47)4849out = df.rename({"a": "b", "b": "a"})50expected = pl.DataFrame(51{52"b": [1, 2, 3, 4, 5],53"a": [5, 4, 3, 2, 1],54}55)56assert_frame_equal(out, expected)5758# 619559ldf = pl.DataFrame(60{61"weekday": [621,63],64"priority": [652,66],67"roundNumber": [683,69],70"flag": [714,72],73}74).lazy()7576# Rename some columns (note: swapping two columns)77rename_dict = {78"weekday": "priority",79"priority": "weekday",80"roundNumber": "round_number",81}82ldf = ldf.rename(rename_dict)8384# Select some columns85ldf = ldf.select(["priority", "weekday", "round_number"])8687assert ldf.collect().to_dict(as_series=False) == {88"priority": [1],89"weekday": [2],90"round_number": [3],91}929394def test_rename_same_name() -> None:95df = pl.DataFrame(96{97"nrs": [1, 2, 3, 4, 5],98"groups": ["A", "A", "B", "C", "B"],99}100).lazy()101df = df.rename({"groups": "groups"})102df = df.select(["groups"])103assert df.collect().to_dict(as_series=False) == {104"groups": ["A", "A", "B", "C", "B"]105}106df = pl.DataFrame(107{108"nrs": [1, 2, 3, 4, 5],109"groups": ["A", "A", "B", "C", "B"],110"test": [1, 2, 3, 4, 5],111}112).lazy()113df = df.rename({"nrs": "nrs", "groups": "groups"})114df = df.select(["groups"])115df.collect()116assert df.collect().to_dict(as_series=False) == {117"groups": ["A", "A", "B", "C", "B"]118}119120121def test_rename_df(df: pl.DataFrame) -> None:122out = df.rename({"strings": "bars", "int": "foos"})123# check if we can select these new columns124_ = out[["foos", "bars"]]125126127def test_rename_df_lambda() -> None:128df = pl.DataFrame({"a": [1], "b": [2], "c": [3]})129out = df.rename(lambda col: "foo" if col == "a" else "bar" if col == "b" else col)130assert out.columns == ["foo", "bar", "c"]131132133def test_rename_schema_order_6660() -> None:134df = pl.DataFrame(135{136"a": [],137"b": [],138"c": [],139"d": [],140}141)142143mapper = {"a": "1", "b": "2", "c": "3", "d": "4"}144145renamed = df.lazy().rename(mapper)146147computed = renamed.select([pl.all(), pl.col("4").alias("computed")])148149assert renamed.collect_schema() == renamed.collect().schema150assert computed.collect_schema() == computed.collect().schema151152153def test_rename_schema_17427() -> None:154assert (155pl.LazyFrame({"A": [1]})156.with_columns(B=2)157.select(["A", "B"])158.rename({"A": "C", "B": "A"})159.select(["C", "A"])160.collect()161).to_dict(as_series=False) == {"C": [1], "A": [2]}162163164