pythonでCSV使って日付データを処理したい人いると思います。
sample残しておきます。
データのサンプル
サンプルソースコード
Csv.py
import csv
import datetime
class Csv:
# コンストラクタ(最初だけの処理)
def __init__(self,fname):
self.list = [] # このリストにCSVのデータすべて入れる
f = open(fname, 'r')
reader = csv.reader(f)
for row in reader:
self.list.append(row)
f.close()
# 日付を文字列とdatetimeの型変更
def date_change(self, date):
if type(date) == str: #もし文字列ならdatetime型に
change_date = datetime.datetime.strptime(date, '%Y/%m/%d')
return change_date
elif type(date) == datetime.datetime: # もしdatetime型なら文字列に
change_date = str(date.year) + '/' + str(date.month) + '/' + str(date.day)
return change_date
# datetime型で日付の加算、減算を行う
def day_calc(self, date, num):
if type(date) == datetime.datetime:
date_buf = datetime.timedelta(days=num) # datetime型の数値を出す(計算するため)
return date + date_buf # ここで計算して返す
else:
print('day_calc: type err')
return
# メイン
def main():
# オブジェクト生成(ついでにCSVを渡してリストに登録しておく)
csv = Csv('sample.csv')
count = 0
for row in csv.list:
# 最初の日付の部分だけいらない。それと0~5まで表示
if row[0] == '日付' or count > 4:
count+=1
continue
print('before: '+row[0])
# 日付をdatetime型に変更
date = csv.date_change(row[0])
# 日付に5加算
new_date = csv.day_calc(date, 5)
# もう一度型を文字列に戻す
new_date = csv.date_change(new_date)
print('new: '+ str(new_date))
count+=1
if __name__ == '__main__':
main()
出力結果
出力結果
before: 2018/4/1
new: 2018/4/6
before: 2018/4/2
new: 2018/4/7
before: 2018/4/3
new: 2018/4/8
before: 2018/4/4
new: 2018/4/9