你也可以使用numpy.假设你有:
dates = numpy.array([datetime(2012,02,03,12,00,00), datetime(2012,02,03,15,00,00), datetime(2012,02,03,13,00,00)])
values = numpy.array([[1, 1], [3, 3], [2, 2]])
Run Code Online (Sandbox Code Playgroud)
你可以先做:
unified = numpy.concatenate((dates.reshape(len(dates), 1), values), axis=1)
Run Code Online (Sandbox Code Playgroud)
这将合并你的两个列表,考虑你想要的应该是一个更适合的方式来保存你的数据.所以现在你有:
unified = array([[2012-02-03 12:00:00, 1, 1],
[2012-02-03 15:00:00, 3, 3],
[2012-02-03 13:00:00, 2, 2]], dtype=object)
Run Code Online (Sandbox Code Playgroud)
现在你可以这样做:
unified = numpy.sort(unified, axis=0)
Run Code Online (Sandbox Code Playgroud)
这将按日期排序.现在,如果你仍然想要单独的列表,你可以使用它们:
unified[:, 0]
>>> array([2012-02-03 12:00:00, 2012-02-03 13:00:00, 2012-02-03 15:00:00], dtype=object)
unified[:, 1:]
>>> array([[1, 1],
[2, 2],
[3, 3]], dtype=object)
Run Code Online (Sandbox Code Playgroud)
在您的评论后编辑好了现在我完全理解您想要通过替换实现的目标
unified = numpy.sort(unified, axis=0)
Run Code Online (Sandbox Code Playgroud)
有:
unified = numpy.array(sorted(unified, key= lambda x: x[0]))
Run Code Online (Sandbox Code Playgroud)
编辑
你试过我刚刚建议的吗?在我的终端:
unified = numpy.array([[datetime(2012,02,03,12,00,00), 4, 1],[datetime(2012,02,03,15,00,00), 5, 2],[datetime(2012,02,03,13,00,00), 2, 1]], dtype=object)
>>> unified
array([[2012-02-03 12:00:00, 4, 1],
[2012-02-03 15:00:00, 5, 2],
[2012-02-03 13:00:00, 2, 1]], dtype=object)
>>> unified = numpy.array(sorted(unified, key=lambda x: x[0]))
>>> unified
array([[2012-02-03 12:00:00, 4, 1],
[2012-02-03 13:00:00, 2, 1],
[2012-02-03 15:00:00, 5, 2]], dtype=object)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5003 次 |
| 最近记录: |