【发布时间】:2017-08-28 04:36:55
【问题描述】:
我的代码有问题。我想做以下事情:我有大约 30 个 csv 文件需要处理,我希望将结果放在一个 csv 文件中。到目前为止,我有以下代码(示例):
import pandas as pd
import csv as csv
df = pd.read_csv ("file.csv",
delimiter=",",skiprows=1)
datamean10=df[61:240].mean()
datamean15=df[241:420].mean()
list10=[]
list15=[]
list10.append(datamean10.clip(0))
list15.append(datamean15.clip(0))
csvfile = "C:/Users/bla/bla/list10.csv"
with open(csvfile, 'w') as output:
writer = csv.writer(output, lineterminator='\n')
writer.writerows(list10)
csvfile = "C:/Users/bla/bla/list15.csv"
with open(csvfile, 'w') as output:
writer = csv.writer(output, lineterminator='\n')
writer.writerows(list15)
所以这段代码对单个文件做了我想要的。我编写了另一个脚本来遍历所有文件:
import sys, os
for root, dir, files in os.walk('C:/Users/bla/bla/bla'):
for file in files:
if file.endswith('.csv'):
os.system ('averagelist.py {}'.format(root + '\\' + file))
不用说这个脚本会再次删除列表并从一个空白列表开始,而我想将结果附加到同一个列表中。这样生成的文件对于每个处理的文件都有一行平均值。有人可以告诉我该怎么做吗?非常感谢您提前。
【问题讨论】:
-
有两个单独的脚本有什么原因,你为什么不把它们结合起来?
-
只需将
os.walk放在open(csvfile, 'w') as output:之上,然后将os.system ('averagelist.py {}'.format(root + '\\' + file))替换为csvfile = file。 (或者说:qith open(file ..) -
如何组合它们?