2016-07-14 12 views
0

私はPythonで日付と会計週のリストを持っています。私は、CSVからそれらを引くと、リストにロードするには、次のコードを使用しています:Python:日付リストの繰り返しと会計週の最初の日の選択

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 

ここ

import csv 

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

は、リストのように見えるものです週の最初の日を取得して、その週の各日に印刷するには、次のようなコードを使用できますか?私が探しています

出力が取得する:

[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

それはあなたが得ることができる最善の解決策だかどうかわからないけど。

2020年1月13日午後12時00分00秒2020年1月13日午前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

結果、あなたの最初の年度の日になることを想定しています: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

関連する問題