gpt4 book ai didi

Python 将列表写入 csv

转载 作者:太空宇宙 更新时间:2023-11-03 16:16:40 25 4
gpt4 key购买 nike

每次循环运行时,如何将 print 语句中的结果写入 csv 文件,并将结果添加到下一行。结果包含一个列表。

def func_high(i):
swing_low = data_file.iloc[i].Low
date = data_file.iloc[i].Date

while i < len(data_file):
i = i + 1

try :
swing_high = data_file.iloc[i].High
if (swing_high < data_file.iloc[i + 1].High) and (data_file.iloc[i + 1].High > data_file.iloc[i + 2].High):
date_diff = data_file.iloc[i + 1].Date - date
price_diff = data_file.iloc[i + 1].High - swing_low
**print (price_diff/date_diff.days, date, swing_low , data_file.iloc[i + 1].Date, data_file.iloc[i + 1].High, date_diff)**

except IndexError:
pass
continue

最佳答案

您可以将 print 更改为 yield,并使用 csv.writer (我对您的函数进行了一些其他编辑,以便我可以更容易遵循逻辑)。

import csv
i = 0

def func_high(i):
swing_low = data_file.iloc[i].Low
date = data_file.iloc[i].Date
while i < (len(data_file) - 3):
i += 1

swing_high = data_file.iloc[i].High
curr_date = data_file.iloc[i + 1].Date
curr_high = data_file.iloc[i + 1].High
next_high = data_file.iloc[i + 2].High

if (swing_high < curr_high) and (curr_high > next_high):
date_diff = curr_date - date
price_diff = curr_high - swing_low
avg_change = price_diff/date_diff.days
yield [avg_change, date, swing_low, curr_date, curr_high, date_diff]


with open('my_csv.csv', 'w') as out_f:
writer = csv.writer(out_f, lineterminator='\n')
writer.writerows(func_high(i))

如果您想走 pandas 路线,您可以使用上面的生成器执行以下操作。

pd.DataFrame(list(func_high(i)).to_csv('my_csv.csv',index=False, header=False)

关于Python 将列表写入 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38900013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com