Python怎么把循环得到的结果按照列依次写入到一个csv文件中?

完全新手,跪求各位大佬啊!!

import csv

with open('shiyan.csv', 'rb') as f:

reader = csv.reader(f)

your_list = list(reader)

data = map(list,zip(*your_list))

for i,data in enumerate(data):

row = data

row = map(eval, row)

listA=row

result=[float( sum(listA[i:i+10])/10) for i,num in enumerate(listA) if i%10==0]

print result

运行结果如下,现在就是想把每次循环得到的result依次写入一个新的csv文件中,但是最好按照一列一列的写入,万分感谢啊!!!!!!!

图片描述

回答:

我改了一下你的代码,实测是可以从 a.csv复制到 b.csv

import csv

def foo():

with open('a.csv', 'r') as f:

reader = csv.DictReader(f)

rows = [row for row in reader]

if not rows:

return

with open('b.csv', mode='w', newline='', errors='ignore') as f2:

for index, row in enumerate(rows):

if index == 0:

f_csv = csv.DictWriter(f2, fieldnames=list(row.keys()))

f_csv.writeheader()

f_csv.writerow(row)

if __name__ == '__main__':

foo()

不懂可以再问

回答:

建议你把数据放进pandas的dataframe然后调用pandas.to_csv

回答:

在with open写入的时候加一个参数

newline=''

试试?

回答:

先把结果存入pandas 直接内置的to_csv 就搞定了.

如果只是简单的话就不用pandas了 直接这样就行

with open(r"读取文件的路径",'r') as rf,open(r"写入路径",'w',newline='') as wf:

reader = csv.reader(rf)

writer = csv.writer(wf)

for row in reader:

writer.writerow(row)

搞定

回答:

怎么只将某一列写入呢

以上是 Python怎么把循环得到的结果按照列依次写入到一个csv文件中? 的全部内容, 来源链接: utcz.com/a/157271.html

回到顶部