[Python] Polars `concat_arr` no longer takes in `pl.col` as parameter?

Discussão em 'Python' iniciado por Stack, Junho 28, 2025.

  1. Stack

    Stack Membro Participativo

    The following used to work:

    pl.concat_arr(pl.col("X[m]", "Y[m]", "Z[m]")).alias("Antenna_position[m]"),


    but now (polars 1.31.0) I get an error:

    Traceback (most recent call last):
    File "/usr/pueoBuilder/components/pueoAnalysisTools/SharedUtils/antenna_attributes.py", line 307, in <module>
    generate_dataframe_from_pueodata_qrh()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
    File "/usr/pueoBuilder/components/pueoAnalysisTools/SharedUtils/antenna_attributes.py", line 186, in generate_dataframe_from_pueodata_qrh
    ).collect()
    ~~~~~~~^^
    File "/usr/local/lib64/python3.13/site-packages/polars/_utils/deprecation.py", line 97, in wrapper
    return function(*args, **kwargs)
    File "/usr/local/lib64/python3.13/site-packages/polars/lazyframe/opt_flags.py", line 330, in wrapper
    return function(*args, **kwargs)
    File "/usr/local/lib64/python3.13/site-packages/polars/lazyframe/frame.py", line 2332, in collect
    return wrap_df(ldf.collect(engine, callback))
    ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
    polars.exceptions.DuplicateError: the name 'Antenna_position[m]' is duplicate

    It's possible that multiple expressions are returning the same default column name. If this is the case, try renaming the columns with `.alias("new_name")` to avoid duplicate column names.


    The solution is simple: change the line to

    pl.concat_arr("X[m]", "Y[m]", "Z[m]").alias("Antenna_position[m]"),


    or use List instead of Array

    pl.concat_list(pl.col("X[m]", "Y[m]", "Z[m]")).alias("Antenna_position[m]"),


    Polars's documentation recommends using Array over List for performance, so I guess the first workaround would probably be more ideal.

    It looks like Polars Array's concat_arr is still unstable, but does anyone know why this feature got removed?

    Continue reading...

Compartilhe esta Página