我有如下的 csv 文件(inputFile):
Temperature,2,3
Temperature,5,6
Pressure,11,14,45
Pressure,13,23,16
Humidity,21,24,25
Humidity,27,28,26
我想将它写入另一个文件(outputFile),但格式如下:
Temperature,2,3,Pressure,11,14,45,Humidity,21,24,25
Temperature,5,6,Pressure,13,23,16,Humidity,27,28,26
我尝试过以下 Python 代码:
with open('inputFile.csv','r') as csvinput:
with open('outputFile.csv','w') as csvoutput:
writer = csv.writer(csvoutput, delimiter= ',')
writer = csv.writer(csvoutput)
for row in csv.reader(csvinput):
if (row[0] == "Pressure" or row[0] == "Humidity"):
type =row[0]
Value = row[1])
writer.writerow(row + [np.asarray(type)] + [np.asarray(Value)])
这是给出以下格式的输出:
Temperature,2,3,Humidity,27
Temperature,5,6,Humidity,27
Temperature,8,9,Humidity,27
Pressure,11,14,45,Pressure,11
Pressure,13,23,16,Pressure,13
Humidity,21,24,25,Humidity,21
Humidity,27,28,26,Humidity,27
请帮忙!
缺少二进制模式。
为了提高可读性,我建议将读取、更改数据和写入分开,因为您必须在写入之前读取整个输入文件。
示例(无错误处理):
import csv
f = open('inputFile.csv','rb')
reader = csv.reader(f)
data = {}
keys = set ()
for row in reader :
key = row [0]
data.setdefault (key, []).append (row)
f.close ()
odata = []
for (t, p, h) in zip (data ["Temperature"], data ["Pressure"], data ["Humidity"]) :
odata.append (t + p + h)
g = open('outputFile.csv','wb')
writer = csv.writer (g)
writer.writerows (odata)
g.close ()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句