2016-07-14 63 views
0

我有Python中的日期和會計周的列表。我使用下面的代碼從一個CSV拉他們,並加載到一個列表:Python:迭代日期列表並選擇財政周的第一天

import csv 

with open('Fiscal3.csv', 'rb') as csvfile: 
    reader = csv.reader(csvfile) 
    reader2 = list(reader) 

這裏是清單的樣子:

for a, b in reader2: 
print a,b 

結果:

1/13/2020 50 
1/14/2020 50 
1/15/2020 50 
1/16/2020 50 
1/17/2020 50 
1/18/2020 50 
1/19/2020 50 
1/20/2020 51 
1/21/2020 51 
1/22/2020 51 
1/23/2020 51 
1/24/2020 51 
1/25/2020 51 
1/26/2020 51 

我可以使用哪些代碼來獲得一週的第一天,然後在一週中的每一天打印它,如下面的輸出一樣?

輸出,我希望得到:

[each day] [first day of week] 

1/13/2020 50 1/13/2020 
1/14/2020 50 1/13/2020 
1/15/2020 50 1/13/2020 
1/16/2020 50 1/13/2020 
1/17/2020 50 1/13/2020 
1/18/2020 50 1/13/2020 
1/19/2020 50 1/13/2020 
1/20/2020 51 1/20/2020 
1/21/2020 51 1/20/2020 
1/22/2020 51 1/20/2020 
1/23/2020 51 1/20/2020 
1/24/2020 51 1/20/2020 
1/25/2020 51 1/20/2020 
1/26/2020 51 1/20/2020 
+1

你能否到目前爲止你寫的代碼添加? – sawreals

+0

幷包含Python代碼以及我們可以運行的數據框架示例。你的例子和格式是最不清楚的。 – Chris

+0

包含對問題的更好描述 - 只需將每週的第一天添加到每一行即可。 –

回答

0
from datetime import datetime, timedelta 


res=[] 
dates=[('1/13/2020', 50),('1/13/2020', 49),('1/13/2020', 52)] 
for a, b in dates : 
    dt = datetime.strptime(a, '%m/%d/%Y') 
    start = dt - timedelta(days=dt.weekday()) 
    end = start + timedelta(days=6) 
    res.append((a,b, str(start)[:10])) 


print res 

輸入:

dates=[('1/13/2020', 50),('1/13/2020', 49),('1/13/2020', 52)]

輸出:

[('1/13/2020', 50, '2020-01-13'), ('1/13/2020', 49, '2020-01-13'), ('1/13/2020', 52, '2020-01-13')] 
+0

這工作謝謝你! –

0

不知道如果這是你能得到最好的解決方案,但。 在這裏,我假設你的第一條線將永遠是你的第一個會計天

 

import csv 
from datetime import datetime, timedelta, MINYEAR

with open ('Fiscal3.csv','rb') as csvfile: r = csv.reader(csvfile) first_day = datetime(1, 1,MINYEAR) for i in r: date_value = [ int(x) for x in i[0].split(' ')[0].split('/') ] value_as_datetime = datetime(date_value[2], date_value[0], date_value[1])

# if the difference is greater than a week, we want to update our first_day value if value_as_datetime - first_day >= timedelta(weeks=1): first_day = value_as_datetime print value_as_datetime, first_day

結果:

2020年1月13日00:00:00 2020年1月13日00:00 :00
2020-01-14 00:00:00 2020-01-13 00:00:00
2020-01-15 00:00:00 2020-01-13 00:00:00
2020- 01-16 00:00:00 2020-01-13 00:00:00
2020-01-17 00:00:00 2020-01-13 00:00:00
2020-01-18 00:00:00 2020-01-13 00:00:00
2020-01-19 00:00:00 2020-01-13 00:00:00
2020-01-20 00:00:00 2020-01-20 00:00:00
2020-01-21 00:00:00 2020-01-20 00:00:00
2020-01-22 00:00:00 2020 -01-20 00:00:00
2020-01-23 00:00:00 2020-01-20 00:00:00
2020-01-24 00:00:00 2020-01-20 00: 00:00
2020-01-25 00:00:00 2020-01-20 00:00:00
2020-01-26 00:00:00 2020-01-20 00:00:00

你也應該看看https://docs.python.org/2/library/datetime.html

相關問題