我正在尝试重构以下伪代码逻辑,以使用 pandas 将函数从读取和写入文件全部存储在内存中,但with与pandas dataframe.
这是我要重构的代码:
results = []
with open('data.csv', 'rt') as ins:
next(ins) # drop header
a1, b1, c1 = next(ins).strip().split(',')
for i, line in enumerate(ins, 2):
a2, b1, c1 = line.strip().split(',')
...
results.append(dummy_func(a1 b1, c1))
else:
results.append(dummy_func(a1 b1, c1))
这是内存中的等价物吗,特别是我不确定with ins文件中是否有行,我是否需要两者itertuples,并且在旁注中itertuples最好在这里使用,比例如更快iterrows?
import pandas as pd
df = pd.read_csv('data.csv', sep=',')
results = []
for row in df.itertuples():
a1, b1, c1 = row.a, row.b, row.c
for row2 in df.loc[2:].itertuples():
a1, b1, c1 = row2.a, row2.b, row2.c
...
result.append(dummy_func(a1, b1, c1))
else:
result.append(dummy_func(a1, b1, c1))