python - 為什麼我的Pandas DataFrame不使用`sort_values`顯示新訂單?




sorting (2)

熊貓新手,也許我錯過了一個大創意? 我有一個Pandas DataFrame的寄存器事務,形狀像 (500,4)

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不起作用 。 在那個例子中,排序是在列類型 string 。 但正如您所看到的,這裡的所有列都是明確可排序的。

為什麼我的Pandas DataFrame不使用 sort_values 顯示新訂單?


我的問題是,我沒有返回結果數據幀,因此PyCharm並不打算更新所述數據幀。 在return關鍵字修復問題後命名數據幀。


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

所以明確地做:

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

要么

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




dataframe