熊猫新手,也许我错过了一个大创意?
我有一个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 does not work.在那个例子中,排序是在列类型字符串上.但正如您所看到的,这里的所有列都是明确可排序的.
为什么我的Pandas DataFrame不使用sort_values显示新订单?
解决方法:
df.sort_values([‘Total Due’])返回已排序的DF,但它不会更新DF.
所以明确地做:
df = df.sort_values(['Total Due'])
要么
df.sort_values(['Total Due'], inplace=True)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。