for 循环计数每月总计 python

for loop count monthly total python

我有一个数据,这里有一些日期时间。

像这样:

datetime
2022-01-01
2022-02-01
2022-02-01
2022-03-01
2022-03-01
2022-03-01
2022-04-01
2022-04-01
2022-04-01
2022-04-01
2022-04-01
2022-04-01
2022-04-01
2022-04-01
2022-04-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01
2022-05-01

我需要计算每月的总数,所以我做了这样的事情

我的代码是:

df = pd.read_csv('example.csv')
example_per_month = []
for a in range(1,6):
    example = {}
    example[str(a)] = len(df[(df['datetime'] >= '2022-0'+str(a)+'-01')&(df['datetime'] <= '2022-0'+str(a)+'-31'))])
    example_per_month.append(example)
print(example_per_month)

而她是我的输出:

[{'1':1},{'2':2},{'3':3},{'4':9},{'5':14}]

但我现在需要逐月的总数。

预期输出:

[{'1':1},{'2':3},{'3':6},{'4':15},{'5':29}]

提前致谢

这不是您想要的确切解决方案,但希望这能帮助您找到解决方案

values = [{'1':10},{'2':20},{'3':30},{'4':9},{'5':14},{'6':37}]

loop = 1
total = 0
for val in values:
    total += val[str(loop)]
    val[str(loop)] = total
    print(val[str(loop)])
    loop += 1
    
print(total)

“我需要计算每月总数,所以我做了这样的事情”。我将其解释为要求计算任何给定月份发生的日期数。

完全不需要pandas这样的重量级模块

FILENAME = 'foo.txt'
counter = {}
with open(FILENAME) as csv:
    next(csv) # skip header
    for line in csv:
        mm = line[5:7].lstrip('0')
        counter[mm] = counter.get(mm, 0) + 1
print(counter)

输出:

{'1': 1, '2': 2, '3': 3, '4': 9, '5': 15}