2017-02-04 15 views
0

我需要幫助將這些示例從一行移到另一列。我知道我可以使用Microsoft Excel來做到這一點,但由於我將使用更大的文件(> 100萬行),我想知道是否有使用Python的方法。如何使用Python轉置不同數量的列的表?

input.csv

-0.02 | -120.38 |   | 
-0.01 | -120.38 | -120.1 | 
-0.02 | -120.4 |   | 
-0.01 | -70.45 |   | 
0  | 10.34 | 3.4 | 3.4 
0.1 | 20.21 | 90.45 | 
0.2 | 90.45 | 110.3 | 

什麼我希望的是得到這樣的結果

output.csv

-0.02 | -0.01 | -0.02 | -0.01 | 0  | 0.1 | 0.2 
-120.38 | -120.38 | -120.4 | -70.45 | 10.34 | 20.21 | 90.45 
     | -120.1 |  |   | 3.4 | 90.45 | 110.3 
     |   |  |   | 3.4 |  | 

但我得到的是這樣的結果

-0.02 | -0.01 | -0.02 | -0.01 | 0  | 0.1 | 0.2 
-120.38 | -120.38 | -120.4 | -70.45 | 10.34 | 20.21 | 90.45 

它只打印ou前兩行。

我使用這個腳本轉表:

transpose.py

import csv 

data = zip(*csv.reader(open("input.csv", "rb"))) 
csv.writer(open("output.csv", "wb")).writerows(data) 

謝謝您的幫助。

回答

0

不是純Python但如果你能夠使用熊貓庫很容易:

import pandas 
df = pandas.read_csv('input.csv', header=None) 
df.transpose().to_excel('output.csv', header=None, index=None) 
+0

順便說一句,我跑你上面的代碼,它似乎正常工作。你確定這不是一個問題,你使用什麼程序查看輸出? –

+0

我認爲我用來查看它的程序沒有問題。我使用EMEditor查看它。不知怎的,它產生了這樣的結果。我跑了你的答案,但它產生了一個錯誤: pandas.io.common.CParserError:錯誤標記數據。 C錯誤:預計在第2行的2個字段,看到3 – Fang

相關問題