我在這裏看到了這種類型的問題的一些答案,但還不足以真正幫助我。我在9列.csv上做了一個分割 - 文件&將它們寫入了用於在C++中進行其他工作的向量。他們隨後被回寫到一個文件夾作爲單列的.csv文件,基本上類似於此:將單列csv文件合併到單個csv文件中
date
20171012
20171011
20171010
20171009
20171006
20171005
20171004
現在我想所有的9個簡單的CSV文件再次合併成1個文件,使他們水平堆疊最多像這樣在新的文件中:
date,value,etc...
20171012,2501593,etc..
20171011,2176309,etc..
20171010,3484064,etc..
20171009,1785852,etc..
20171006,1785852,etc..
20171005,16476641,etc..
20171004,1235406,etc..
我希望這很容易理解。我下面的代碼如下:
import csv
data = [] # Buffer list
files = ['./CalculatedOutput/quote_date.csv', './CalculatedOutput/paper.csv', './CalculatedOutput/exch.csv', './CalculatedOutput/open.csv', './CalculatedOutput/high.csv', './CalculatedOutput/low.csv', './CalculatedOutput/close.csv', './CalculatedOutput/volume.csv', './CalculatedOutput/value.csv']
for filename in files:
with open(filename, 'r') as csvfile:
stocks = csv.reader(csvfile)
for row in stocks:
new_row = [row[0]]
data.append(new_row)
with open("CalculatedOutput/Opera.csv", "w+") as to_file:
writer = csv.writer(to_file , delimiter=",")
for new_row in data:
writer.writerow(new_row)
此代碼列的所有行移動到1頁新的文件,但它只是使他們彼此下方。我將如何去編寫彼此相鄰的列,逗號分隔? 根據concat,merge和其他,我已經嘗試過大熊貓,numpy和csv lib,但我找不到正確的方法。我不認爲我太遙遠了,但我的蟒蛇不是最好的不幸!
您需要構建一個嵌套列表,ea ch子列表代表單行。對於每個新文件,您都會追加到子列表中。然後用'csv.writerows()'結尾寫下它(當前的方法是在每次迭代時打開文件,效率非常低)。我目前不在PC上創建答案。 – roganjosh
你的縮進有點過分,所以實際上你可能不會在每次迭代中打開。請修復問題中的縮進。 – roganjosh
Unix粘貼命令 –