0

I'm trying to get my code to write the following list( a list of 3 floats) in a CSV file in 3 rows.

least_scores=[14.285714285714286, 14.375, 16.5] 

I want it to be saved in rows in the CSV file like below:

14.285714285714286
14.375
16.5

but the program save all the numbers in one row or when I change the code I get the error that float is not iterable. I have tried many things and checked a lot of similar questions here and there, but I can not find the solution to my problem.

the following codes are the things that I have tried so far:

import csv
from statistics import mean
with open("E:\\Chapter5\input_file_name.csv") as inputi:
 data_list=[]
 score_list=[]
 mean_list=[]
 reader=csv.reader(inputi)
 for rows in reader:
 data_list.append(rows)
 #print(len(data_list))
 for i in range(0,len(data_list)):
 score_list.append(data_list[i][1:])
 #print(score_list)
 new_list=[
 [float(x) for x in nested_lists]
 for nested_lists in score_list
 ]
 #print(new_list)
 for items in new_list:
 mean_list.append(mean(items))
 #print(mean_list)
 least_scores=sorted(mean_list)
 least_scores=least_scores[0:3]
 print(least_scores)
 with open("E:\\Chapter5\output_file_name.csv",'w',newline='') as outi:
 writer=csv.writer(outi)
 writer.writerow(least_scores)

with the above code the list items will all be saved in a single row.

so I tries writer.writerows instead of writer.writerow but I got the error "iterable expected, not float"

the I tried the following code:

with open("E:\\Chapter5\output_file_name.csv",'w',newline='') as outi:
 writer=csv.writer(outi)
 for nums in least_scores:
 writer.writerows(nums)

and got the error "'float' object is not iterable" Could you please help me solve this issue please?

asked Oct 26, 2022 at 16:07

2 Answers 2

3

writerow() is looking for an iterable, the value in nums can be passed within a list to satisfy that:

with open("file_name.csv", 'w', newline='') as outi:
 writer = csv.writer(outi)
 for nums in least_scores:
 writer.writerow([nums])
answered Oct 26, 2022 at 16:21
Sign up to request clarification or add additional context in comments.

Comments

0

Well done on including a shorter bit of code, that helps with debugging. Can you share the full stack next time as well please?

I think in this case, the issue is that least_scores is MEANT to be a list of floats, but you just have a float there.

answered Oct 26, 2022 at 16:18

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.