如何按特定顺序对行进行排序
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 |
| 欧元 | 乙 |
例如,您可以pl.Categorical使用 来制定自己的数据顺序pl.StringCache。
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)\nRun 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\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1428 次 |
| 最近记录: |