I want to generate a code that will write 20 rows from each of two different dataframes. Therefore, I created something like below. Everything works fine except nested loop (u) starts from 0 each time. Can you help me how to fix it to start from where it left, please?
JavaScript
x
8
1
for t, row in results_table1.iterrows():
2
f.write(" & ".join([str(x) for x in row.values]) + " \\n")
3
if t > 0 and t % 20 == 0:
4
for u, row in results_table2.iterrows():
5
f.write(" & ".join([str(x) for x in row.values]) + " \\n")
6
if u > 0 and u % 20 == 0:
7
break
8
Advertisement
Answer
Do you want to alternate between the two tables? Then I would just access the content by index:
JavaScript
1
4
1
for t in range(20):
2
f.write(" & ".join([str(x) for x in results_table1.iloc[t].values]) + " \\n")
3
f.write(" & ".join([str(x) for x in results_table2.iloc[t].values]) + " \\n")
4
Edit: to get line 0-19 from table 1, then 0-19 from table 2, then 20-39 from table one etc:
(based on the answer of im_vutu but making sure all lines are copied, even if the total is not divisible by 20)
JavaScript
1
11
11
1
u = 0
2
for t, row in results_table1.iterrows():
3
f.write(" & ".join([str(x) for x in row.values]) + " \\n")
4
if t > 0 and t % 20 == 0 or t == len(results_table1.index)-1:
5
for i in range(0,20):
6
try:
7
f.write(" & ".join([str(x) for x in results_table2.iloc[u]]) + " \\n")
8
u += 1
9
except KeyError:
10
break
11