2017-02-04 44 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

相关问题