小编典典

为什么我的Pandas DataFrame不使用`sort_values`显示新订单?

python

Pandas的新手,所以也许我错过了一个大主意?我有一个形状如下的注册交易的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开始),因此有时会遇到这种情况,但是在这种情况下我看不出它有什么意义。


阅读 286

收藏
2020-12-20

共1个答案

小编典典

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

因此,请明确地执行此操作:

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

要么

df.sort_values(['Total Due'], inplace=True)
2020-12-20