日期列表,如何获得每个季度的计数

2024-09-28 05:28:04 发布

您现在位置: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))

Tags: of代码fromimport列表datacountercollections
1条回答
网友
1楼 · 发布于 2024-09-28 05:28:04

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

假设您的数据包含在一个文件中(csv、txt或其他文件)。然后要计算单个关键字(例如:1Q2016)在列表中出现的次数,您可能需要导入该文件,然后按照下面的代码段所示进行处理:



文件内容:(数据.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
#  }

希望距离足够近…
干杯,祝你好运;—)

相关问题 更多 >

    热门问题