如何对极坐标中的行进行自定义排序

Muh*_*kar 6 python-polars

如何按特定顺序对行进行排序

df = pl.DataFrame({"currency": ["EUR","EUR","EUR","USD","USD","USD"], "alphabet": ["A","B","C","A","B","C"]})
Run Code Online (Sandbox Code Playgroud)

我需要按货币和自定义字母顺序降序

预计会是这样的

货币 字母
美元 C
美元 A
美元
欧元 C
欧元 A
欧元

gle*_*com 5

例如,您可以pl.Categorical使用 来制定自己的数据顺序pl.StringCache

\n
df = pl.DataFrame({\n    "currency": ["EUR","EUR","EUR","USD","USD","USD","USD"],\n    "alphabet": ["A","B","C","A","B","C","A"]\n})\n\nwith pl.StringCache():\n    currency = sorted(["EUR", "USD"], reverse=True)\n    pl.Series(["C", "A", "B", *currency]).cast(pl.Categorical)\n    \n    df = df.with_columns(\n        pl.col(pl.Utf8).cast(pl.Categorical),\n    ).sort(\n        pl.col(pl.Categorical).to_physical()\n    )\n    \n    print(df)\n
Run Code Online (Sandbox Code Playgroud)\n
\xe2\x94\x8c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\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\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x90\n\xe2\x94\x82 currency \xe2\x94\x86 alphabet \xe2\x94\x82\n\xe2\x94\x82 ---      \xe2\x94\x86 ---      \xe2\x94\x82\n\xe2\x94\x82 cat      \xe2\x94\x86 cat      \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\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\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1\n\xe2\x94\x82 USD      \xe2\x94\x86 C        \xe2\x94\x82\n\xe2\x94\x82 USD      \xe2\x94\x86 A        \xe2\x94\x82\n\xe2\x94\x82 USD      \xe2\x94\x86 A        \xe2\x94\x82\n\xe2\x94\x82 USD      \xe2\x94\x86 B        \xe2\x94\x82\n\xe2\x94\x82 EUR      \xe2\x94\x86 C        \xe2\x94\x82\n\xe2\x94\x82 EUR      \xe2\x94\x86 A        \xe2\x94\x82\n\xe2\x94\x82 EUR      \xe2\x94\x86 B        \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\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\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x98\n
Run Code Online (Sandbox Code Playgroud)\n