Python读取第一行和第二行,然后读取第二行和第三行
我有这样一个文件: 截止日期价格 t 101 t+1103.1 t+2 104 t+3100 我想计算第(t+1)天、第(t+2)天、第(t+3)天的回报Python读取第一行和第二行,然后读取第二行和第三行,python,python-3.x,Python,Python 3.x,我有这样一个文件: 截止日期价格 t 101 t+1103.1 t+2 104 t+3100 我想计算第(t+1)天、第(t+2)天、第(t+3)天的回报 有人能帮我吗?非常感谢您可以尝试这样简单的方法,其中迭代器为2 with open(file, 'r') as f: f_lst = f.read().splitlines() for idx in range(0,len(s), 2): line1 = f_lst[idx] lin
有人能帮我吗?非常感谢您可以尝试这样简单的方法,其中迭代器为2
with open(file, 'r') as f:
f_lst = f.read().splitlines()
for idx in range(0,len(s), 2):
line1 = f_lst[idx]
line2 = f_lst[idx+1]
rate_return = (line2[Closed_Price] - line1[Closed_Price])/line1[Closed_Price]
解决方案是为
for
循环的下一次迭代存储当前行。在每次迭代中,您都可以访问前一行和当前行。在第一次迭代的情况下,没有存储前一行,因此我们跳过需要两行的操作(在if
语句中)
filename=“lines.txt”
打开(文件名为“r”)作为文件:
前一行=无
对于文件中的行:
#带尾随符\r\n此行的回车符和换行符
line=line.rstrip()
#跳过第一行,因为没有上一行
如果前一行不是无:
打印(上一行、上一行、浮动(行)-浮动(上一行))
#将当前行存储到变量中,以便在下一次迭代中使用
前一行=前一行
使用文件lines.txt
:
101
103.1
104
100
控制台输出为:
101 103.1 2.0999999999999943
103.1 104 0.9000000000000057
104 100 -4.0
注:笨拙的小数是由于;然而,你的计算可能仍然相对准确
如果这是一个CSV文件,您可以将其读入pandas数据框,并使用内置函数在其中进行所有分析
import pandas as pd
data = pd.read_csv(file, sep=" ")
data['return'] = data['Closed_Price'].pct_change()
数据是包含在excel电子表格还是txt文件中?@dingo它是一个csv文件
import pandas as pd
data = pd.read_csv(file, sep=" ")
data['return'] = data['Closed_Price'].pct_change()