第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過兩列或更多列對python pandas中的dataFrame進行排序?

如何通過兩列或更多列對python pandas中的dataFrame進行排序?

德瑪西亞99 2019-07-29 21:21:43
如何通過兩列或更多列對python pandas中的dataFrame進行排序?假設我有一個包含列的數(shù)據(jù)框a,b并且c我想按列b升序排序數(shù)據(jù)幀,按列c降序排序,我該怎么做?
查看完整描述

3 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

從pandas 0.17.0開始,DataFrame.sort()不推薦使用,并設置為在未來版本的pandas中刪除?,F(xiàn)在是通過其值對數(shù)據(jù)幀進行排序的方法DataFrame.sort_values

因此,現(xiàn)在問題的答案就是

df.sort_values(['b', 'c'], ascending=[True, False], inplace=True)


查看完整回答
反對 回復 2019-07-29
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

對于數(shù)字數(shù)據(jù)的大型數(shù)據(jù)幀,您可能會看到顯著的性能改進numpy.lexsort,使用一系列鍵執(zhí)行間接排序:

import pandas as pdimport numpy as np

np.random.seed(0)df1 = pd.DataFrame(np.random.randint(1, 5, (10,2)), columns=['a','b'])df1 = pd.concat([df1]*100000)def pdsort(df1):
    return df1.sort_values(['a', 'b'], ascending=[True, False])def lex(df1):
    arr = df1.values    return pd.DataFrame(arr[np.lexsort((-arr[:, 1], arr[:, 0]))])assert (pdsort(df1).values == lex(df1).values).all()%timeit pdsort(df1)  # 193 ms per loop%timeit lex(df1)     # 143 ms per loop

一個特點是定義的排序順序numpy.lexsort是相反的:首先(-'b', 'a')按系列排序a。我們否定系列b反映我們希望這個系列按降序排列。


查看完整回答
反對 回復 2019-07-29
  • 3 回答
  • 0 關注
  • 1453 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號