我已经做了好几天 -
我的CSV看起来像:
...
有25行数字 - 它们都略有不同。 我想使用python导入这个CSV,做一些细微的数学运算(例如,在单元格A1和C1之间找到平均值)然后将新的COLUMN打印到一个全新的CSV文件或者将新的COLUMN添加到当前的开头或(甚至重复的文件。 我知道实际的数学部分很简单。这是导入,操作,然后导出一个我无法获得的新COLUMN。
这是我尝试过的: 1)首先我尝试导入csv,将其更改为列表,读取我需要的列然后导出到新的csv。我遇到的问题是,当我导出到CSV时,它不会创建列。它只是添加了一个看起来像(0.111,1.002,..)的单个单元格。
import csv
ofile=open('duplicate.csv', "w")
writer=csv.writer(ofile, delimiter=',')
with open('/Users/myCSV.csv', 'rb') as f:
mycsv = csv.reader(f)
mycsv = list(mycsv)
avg=[]
high=[]
#average number
for i in range(1,25):
x=float(mycsv[i][16])
avg.append(x)
#print avg
average=zip(avg)
#highest number
for i in range(1,25):
x=float(mycsv[i][15])
high.append(x)
#print high
highest=zip(high)
print highest
writer.writerow([average,highest])
ofile.close()
2)然后我尝试为重复文件创建一个新列,并在该列中添加信息。我从另一个类似的问题得到了类似的版本。这只是不起作用 - 我得到错误“TypeError:只能分配一个可迭代的”
import csv
infilename = r'/Users/myCSV.csv'
outfilename = r'/Users/myCSV_duplicate.csv'
with open(infilename, 'rb') as fp_in, open(outfilename, 'wb') as fp_out:
reader = csv.reader(fp_in, delimiter=",")
writer = csv.writer(fp_out, delimiter=",")
headers = next(reader) # read title row
headers[0:0] = ['avg']
writer.writerow(headers)
for row in reader:
for i in range(1,25):
mycsv=list(reader)
row[0:0] = float(mycsv[i][15])
writer.writerow(row)
我一直在这个DAYS可以有人请帮忙!?!?!?
我在MATLAB中编写了所有这些内容,但需要将其转移到Python ... MATLAB更容易理解。
答案 0 :(得分:1)
使用select * from table where zip = @zip and name = @name and id = @id
。这就是它的设计目标。
pandas