python 2.7如何读入日期

2024-05-29 05:18:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python 2.7的问题

我的数据格式如下(这是股市数据) 数据名为finallist,是python中的一个列表

[['AGGP', '15-Mar-18', '19.22', '19.25', '19.2', '19.23', '26800\n'],
 ['AGGY', '15-Mar-18', '49.17', '49.18', '49.09', '49.16', '42500\n'],
 ['AGQ', '15-Mar-18', '31.6', '31.605', '31.27', '31.3', '112900\n'],
 ['AGT', '15-Mar-18', '31.83', '31.83', '31.81', '31.81', '2600\n'],
 ['AADR', '6-Mar-18', '60.4', '60.58', '60.17', '60.4', '18200\n'],
 ['AAMC', '6-Mar-18', '65.2', '65.2', '65.2', '65.2', '100\n'],    
 ['AAU', '6-Mar-18', '0.89', '0.9', '0.86', '0.87', '147500\n'],
 ['ABE', '6-Mar-18', '15.17', '15.29', '15.12', '15.2', '13700\n']]

我试图按列表的第二列进行排序,但要确保程序理解值是日期

我尝试了以下方法,但不起作用

import datetime import time finallist.sort(key=lambda finallist: datetime.strptime(finallist[0][0][1] , '%d-%b-%y'))

它应该按日期对列表进行排序,将每个日期作为一个日期读取,但它不这样做。有人能提供一些关于如何做到这一点的想法吗?抱歉,如果这是重复,但我看了几个其他的例子在网上,但似乎没有工作或匹配我的情况

提前谢谢


Tags: 数据import列表datetime排序股市mar数据格式
2条回答

你基本上只需要

import datetime
finallist.sort(key=lambda row: datetime.datetime.strptime(row[1], '%d-%b-%y'))

但是,如果需要进一步处理数据,另一种方法很有用,即首先预处理日期时间:

import datetime

data = [
    ["AGGP", "15-Mar-18", "19.22", "19.25", "19.2", "19.23", "26800\n"],
    ["AGGY", "15-Mar-18", "49.17", "49.18", "49.09", "49.16", "42500\n"],
    ["AGQ", "15-Mar-18", "31.6", "31.605", "31.27", "31.3", "112900\n"],
    ["AGT", "15-Mar-18", "31.83", "31.83", "31.81", "31.81", "2600\n"],
    ["AADR", "6-Mar-18", "60.4", "60.58", "60.17", "60.4", "18200\n"],
    ["AAMC", "6-Mar-18", "65.2", "65.2", "65.2", "65.2", "100\n"],
    ["AAU", "6-Mar-18", "0.89", "0.9", "0.86", "0.87", "147500\n"],
    ["ABE", "6-Mar-18", "15.17", "15.29", "15.12", "15.2", "13700\n"],
]

for datum in data:
    datum[1] = datetime.datetime.strptime(datum[1], "%d-%b-%y")

data.sort(key=lambda datum: datum[1])

应该是这样的:

from datetime import datetime

sorted(finallist, key=lambda x: datetime.strptime(x[1], '%d-%b-%y'))

#[['AADR', '6-Mar-18', '60.4', '60.58', '60.17', '60.4', '18200\n'],
# ['AAMC', '6-Mar-18', '65.2', '65.2', '65.2', '65.2', '100\n'],
# ['AAU', '6-Mar-18', '0.89', '0.9', '0.86', '0.87', '147500\n'],
# ['ABE', '6-Mar-18', '15.17', '15.29', '15.12', '15.2', '13700\n'],
# ['AGGP', '15-Mar-18', '19.22', '19.25', '19.2', '19.23', '26800\n'],
# ['AGGY', '15-Mar-18', '49.17', '49.18', '49.09', '49.16', '42500\n'],
# ['AGQ', '15-Mar-18', '31.6', '31.605', '31.27', '31.3', '112900\n'],
# ['AGT', '15-Mar-18', '31.83', '31.83', '31.81', '31.81', '2600\n']]

相关问题 更多 >

    热门问题