根据列的绝对值对 Polars 数据框进行排序

bet*_*een 2 python dataframe python-polars

我想根据列的绝对值以升序或降序对极坐标数据框进行排序。Pandas在Python中或者使用sortedPython中的函数很容易做到。假设我想根据val下面的数据框中的列进行排序。

\n
import numpy as np\nnp.random.seed(42)\nimport polars as pl\n\ndf = pl.DataFrame({\n    "name": ["one", "one", "one", "two", "two", "two"],\n    "id": ["C", "A", "B", "B", "C", "C"],\n    "val": np.random.randint(-10, 10, 6)\n    })\n
Run Code Online (Sandbox Code Playgroud)\n

返回:

\n
\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 name \xe2\x94\x86 id  \xe2\x94\x86 val \xe2\x94\x82\n\xe2\x94\x82 ---  \xe2\x94\x86 --- \xe2\x94\x86 --- \xe2\x94\x82\n\xe2\x94\x82 str  \xe2\x94\x86 str \xe2\x94\x86 i32 \xe2\x94\x82\n\xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\xe2\x94\x82 one  \xe2\x94\x86 C   \xe2\x94\x86 -4  \xe2\x94\x82\n\xe2\x94\x82 one  \xe2\x94\x86 A   \xe2\x94\x86 9   \xe2\x94\x82\n\xe2\x94\x82 one  \xe2\x94\x86 B   \xe2\x94\x86 4   \xe2\x94\x82\n\xe2\x94\x82 two  \xe2\x94\x86 B   \xe2\x94\x86 0   \xe2\x94\x82\n\xe2\x94\x82 two  \xe2\x94\x86 C   \xe2\x94\x86 -3  \xe2\x94\x82\n\xe2\x94\x82 two  \xe2\x94\x86 C   \xe2\x94\x86 -4  \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\n
Run Code Online (Sandbox Code Playgroud)\n

谢谢!

\n

mar*_*lli 5

您想根据 的绝对值排序\'val\'

\n

表达式是你的朋友,不需要临时列:

\n
In [33]: df.sort(pl.col(\'val\').abs())\nOut[33]:\nshape: (6, 3)\n\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xac\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 name \xe2\x94\x86 id  \xe2\x94\x86 val \xe2\x94\x82\n\xe2\x94\x82 ---  \xe2\x94\x86 --- \xe2\x94\x86 --- \xe2\x94\x82\n\xe2\x94\x82 str  \xe2\x94\x86 str \xe2\x94\x86 i64 \xe2\x94\x82\n\xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xaa\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\xe2\x94\x82 two  \xe2\x94\x86 B   \xe2\x94\x86 0   \xe2\x94\x82\n\xe2\x94\x82 two  \xe2\x94\x86 C   \xe2\x94\x86 -3  \xe2\x94\x82\n\xe2\x94\x82 one  \xe2\x94\x86 C   \xe2\x94\x86 -4  \xe2\x94\x82\n\xe2\x94\x82 one  \xe2\x94\x86 B   \xe2\x94\x86 4   \xe2\x94\x82\n\xe2\x94\x82 two  \xe2\x94\x86 C   \xe2\x94\x86 -4  \xe2\x94\x82\n\xe2\x94\x82 one  \xe2\x94\x86 A   \xe2\x94\x86 9   \xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xb4\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\n
Run Code Online (Sandbox Code Playgroud)\n