【发布时间】:2019-09-16 12:26:54
【问题描述】:
我只想根据条件将输入 CSV 文件中的某些行写入输出 CSV:如果满足条件,则将 上一行、当前行和下一行写入输出 CSV。这是我到目前为止所做的:
with open('DATA 12-09-19.csv',newline ='') as csvfile:
bData = csv.reader(csvfile,delimiter=',')
header = next(bData)
data = []
for row in bData:
date = datetime.strptime(row[0], '%d/%m/%Y %H:%M')
open_price = float(row[1])
high_price = float(row[2])
low_price = float(row[3])
close_price = float(row[4])
sup = ((high_price - open_price)* 100)
sown = ((open_price - low_price)* 100)
data.append([date,open_price,high_price,low_price,close_price,round(sup),round(sown)])
with open("Result_Data.csv",'w',newline='') as f_output:
csv_output = csv.writer(f_output,delimiter=',')
csv_output.writerow(header)
for row in data:
if row[0].time() >= datetime.strptime(starting_time, '%H:%M').time() and row[0].time() <= datetime.strptime(ending_time, '%H:%M').time(): #Condition 1 to be met
if row[5] >= 7 or row[6] >= 7: #Condition 2 to be met
csv_output.writerow(row) # Only outputting current row
我的数据列是:
日期,开,高,低,收,上,播。
我应该怎么做才能将上一行和下一行写入输出 CSV,而不是像现在使用 csv 模块那样只写入当前行?
【问题讨论】: