2017-03-05 13 views
5

新的熊貓,所以也許我錯過了一個大想法? 我有一個熊貓數據幀寄存器的交易與形狀像(500,4)爲什麼我的Pandas DataFrame不使用`sort_values`顯示新的訂單?

Time    datetime64[ns] 
Net Total    float64 
Tax      float64 
Total Due    float64 

我通過我的代碼在Python3 Jupyter筆記本工作。我無法通過排序任何列。通過不同的代碼示例進行排序,當我檢查df時,我看不到輸出重新排序。所以,我已經減少了問題想訂購只有一個列:

df.sort_values(by='Time') 
# OR 
df.sort_values(['Total Due']) 
# OR 
df.sort_values(['Time'], ascending=True) 

無論哪一列標題,或布爾參數我用,顯示的結果不會改變順序。

思考它可能是一個Jupyter的事情,我已經使用print(df)df.head(),並HTML(df.to_html())(最後一個例子是Jupyter筆記本電腦)預覽的結果。我還將整個筆記本從導入CSV重新運行到此代碼。而且,我也是Python3的新手(2.7以上版本),所以我有時會遇到這種情況,但在這種情況下我看不出這是相關的。

另一個帖子也有類似的問題,Python pandas dataframe sort_values does not work。在這種情況下,排序是在列類型string。但正如你所看到的,這裏的所有列都是明確排序的。

爲什麼我的熊貓數據框不能使用sort_values顯示新訂單?

+1

IIUC試試這個:'DF = df.sort_values([ '總由於'])'或'df.sort_values([」 Total Due'],inplace = True)' – MaxU

+0

@MaxU這樣做了。你知道嗎。我正在做一個新的DataFrame的每個轉換 - 除了這一個;那很簡單。回答這個問題,我會標記答案 - 完成。 – xtian

回答

10

df.sort_values(['Total Due'])返回一個排序的DF,但它不會更新DF。

所以做到這一點明確:

df = df.sort_values(['Total Due']) 

df.sort_values(['Total Due'], inplace=True)