Windows10
VisualStudio Python(3.7 64bit)
Pythonを勉強中の者です。
まずCSVファイルに日付、購入情報を載せたものを作成し、
それをPythonで読み込んで、リストにcsv情報を格納しています。
そこから日付型のテキストを入力して、csvリストの日付の場所を範囲選択し、
一致した行を取り出したいのですがうまくいきません。
(例)csvファイル【列の順番】日付,商品コード,商品名,単価,購入数
2021/1/1,A001,商品A,100,10
2021/1/2,B003,商品B,1200,2
2021/1/3,C004,商品C,1000,3
2021/1/4,D005,商品D,500,5
2021/1/5,E006,商品E,200,5
2021/1/6,F007,商品F,2000,1
2021/1/7,G008,商品G,1300,2
2021/1/8,H009,商品H,2000,1
2021/1/9,I010,商品I,500,20
2021/1/10,J010,商品J,1000,2
Python
1import csv 2import datetime 3from datetime import datetime as dt 4Path = "XXX.csv" 5f = open(Path,"r",encoding="ms932") 6reader = csv.reader(f) 7From_date = dt.strptime("2021/1/2","%Y/%m/%d") 8To_date = dt.strptime("2021/1/6","%Y/%m/%d") 9if From_date and To_date: 10 csv_data=[] 11 for a in reader: 12 while From_date <= a[0] and To_date >= a[0]: 13 csv_data.append(a) 14 print(a)
※やりたいこと
・CSVファイルをループして「2021/1/2」(最小値)から「2021/1/6」(最大値)
csvファイルの日付列と一致した部分の行をリストに格納したい。
〇実現したい表示結果
2021/1/2,B003,商品B,1200,2
2021/1/3,C004,商品C,1000,3
2021/1/4,D005,商品D,500,5
2021/1/5,E006,商品E,200,5
2021/1/6,F007,商品F,2000,1
→上記のプログラムだと、「<=」等の演算子が対応していないようなエラーが出てしまいます。
以下、エラー内容
'<=' not supported between instances of 'datetime.datetime' and 'str'
*追記 エラー内容は自分が理解していないだけでした。比較する方が一致していないようでした。
PandasやNumpyを使ったほうが便利であるのは承知の上ですが、それらを使用せずにやってみたいのです。(検索したらPandasしか載っていなかったので、今回質問させていただきました)
ご教授いただければ幸いです。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー