日期列表,如何计算个别季度

时间:2018-01-14 04:16:38

标签: python

我有日期列表,如何计算个别季度1Q2015 2Q2015 3Q2015 4Q2015 1Q2016 2Q2016 3Q2016 4Q2016 1Q2017 2Q2017

list of data

10    1Q2016
11    1Q2017
12    1Q2015
13    1Q2016
14    1Q2016
15    2Q2017
16    1Q2016
17    4Q2016
18    1Q2016
19    4Q2017
20    1Q2016
21    1Q2016
22    1Q2016
23    1Q2016
24    1Q2016
25    1Q2016
26    1Q2016
27    1Q2016
28    1Q2016
29    1Q2016
   ...  
53    2Q2016
54    2Q2015
55    2Q2016
56    2Q2016
57    2Q2017
58    2Q2016
59    2Q2016

如何将它们拆分为1Q2015 2Q2015 3Q2015 4Q2015 1Q2016 2Q2016 3Q2016 4Q2016 1Q2017 2Q2017

的子列表

我是python的新手

它使用下面的代码

from collections import Counter
pidx2 = Counter((quarter))

1 个答案:

答案 0 :(得分:0)

请注意,下面的代码段基于几个假设:[即;使用您发布的“不那么完整的信息”

假设您的数据包含在文件(csv,txt或其他任何内容)中。然后计算单个关键字(例如:1Q2016)在列表中出现的次数,您可能需要导入文件,然后像下面的代码段建议一样处理它:



文件内容:(data.txt)

10    1Q2016
11    1Q2017
12    1Q2015
13    1Q2016
14    1Q2016
15    2Q2017
16    1Q2016
17    4Q2016
18    1Q2016
19    4Q2017
20    1Q2016
21    1Q2016
22    1Q2016
23    1Q2016
24    1Q2016
25    1Q2016
26    1Q2016
27    1Q2016
28    1Q2016
29    1Q2016
53    2Q2016
54    2Q2015
55    2Q2016
56    2Q2016
57    2Q2017
58    2Q2016
59    2Q2016

计算发生事故的单位:

fileContainingData  = 'data.txt'    # PATH/TO/FILE/WITH/DATA
fHandle             = open(fileContainingData, 'r')
dictData            = {}

for line in fHandle.readlines():
    # SPLIT THE LINE USING EMPTY SPACE AS DELIMITER
    lParts              = list(filter(lambda v: v.strip(),line.split(sep=" ")))
    key                 = str(lParts[1]).strip("\n ")
    if key not in dictData.keys():
        dictData[key]   = 1
    else:
        dictData[key]  += 1

fHandle.close()

print(dictData)
# YIELDS: 
# {
#  '1Q2016': 15, 
#  '1Q2017': 1, 
#  '1Q2015': 1, 
#  '2Q2017': 2, 
#  '4Q2016': 1, 
#  '4Q2017': 1, 
#  '2Q2016': 5, 
#  '2Q2015': 1
#  }

希望足够接近...... 干杯和好运; - )