我有一個來自我想要排序的資料庫的列名DataFrame。UPPERCASE其中一些以下劃線為前綴_。默認排序將它們放在最后。我必須將它們轉換為小寫,然后排序,然后將它們轉換回大寫還是有更簡單的方法?
這是一些示例資料。當 的值為cl2小寫時,順序正確。大寫的不是那么多。
pd.DataFrame({
"cl1": ["foo", "foo", "foo"],
"cl2": ["_FOO", "BAR", "BAZ"]}
).sort_values(["cl1", "cl2"])
uj5u.com熱心網友回復:
如果轉換為小寫對您有用,您可以將其用作鍵:
pd.DataFrame({
"cl1": ["foo", "foo", "foo"],
"cl2": ["_FOO", "BAR", "BAZ"]}
).sort_values(["cl1", "cl2"], key=lambda s: s.str.lower())
其他選項,按不帶 的字串排序_,然后存在_:
(pd.DataFrame({
"cl1": ["foo", "foo", "foo"],
"cl2": ["_FOO", "BAR", "BAZ"]})
.sort_values(["cl1", "cl2"], key=lambda s: s.str.lstrip('_'))
.sort_values(["cl1", "cl2"], key=lambda s: ~s.str.startswith('_'), kind='stable')
)
輸出:
cl1 cl2
0 foo _FOO
1 foo BAR
2 foo BAZ
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/515316.html
上一篇:如何對ActionResult<IEnumerable<T>>進行過濾和排序?
下一篇:SVG和安卓作業室
