Pandas的新手,所以也许我错过了一个大主意?我有一个形状如下的注册交易的Pandas DataFrame (500,4):
(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开始),因此有时会遇到这种情况,但是在这种情况下我看不出它有什么意义。
print(df)
df.head()
HTML(df.to_html())
df.sort_values(['Total Due']) 返回已排序的DF,但不会就位更新DF。
df.sort_values(['Total Due'])
因此,请明确地执行此操作:
df = df.sort_values(['Total Due'])
要么
df.sort_values(['Total Due'], inplace=True)