我正在尝试重新排列 Polars 数据框中的列,并首先放置 100 列中的 5 列(不幸的是,文档在 Excel 中必须具有一定的可读性)。我似乎找不到一种简单的方法来做到这一点。
理想情况下,我想要一些简单的东西,比如
df.select(
'col2',
'col1',
r'^.*$', # the rest of the columns, but this throws a duplicate column name error
)
不支持负向前瞻,因此无法制作排除我所选列的正则表达式。我可以进行两个重叠的选择,从一个选择中删除列,然后将它们连接起来,但这似乎不是预期的方法。我发现的所有其他解决方案都涉及明确命名每一列,我试图避免这种情况,因为列会经常添加或更改名称。
它涉及两次命名列,但您可以将它们排除:
pl.exclude()
例子:
有一个功能请求允许
df.select('col2', 'col1', ...)
您可以
pl.exclude
与海象运算符结合使用。假设你有类似的东西
并且您希望前 3 列为 'a'、'b'、'c'。您可以执行以下操作:
这将创建一个名为的列表
start_cols
,其中包含“a”、“b”、“c”。星号解开列表,然后pl.exclude
使用的内容start_cols
告诉 polars 返回除之外的所有内容start_cols
。如果愿意,您可以改用以下语法: