2017-02-02 7 views
0

pythonを使用して行から列へ転置するのに助けが必要です。Pythonの転置関数は2行だけ転記する

私はcsvファイル移調するために、このスクリプトを使用します。私は> 5000行と行ごとの列の数が異なる大.csvファイルを使用してテスト

import csv 

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

をしかし、結果は何が好きされていません私は期待した。

例のcsvファイル:私が得た

a , 1 , 2 , 3 , 
b , 2 , 4 , 6 , 8 
c , 3 , 6 , , 
d , 4 , 

結果:私が欲しい

a , b , c , d 
1, 2 , 3 , 4 

結果:

a , b , c , d 
1 , 2 , 3 , 4 
2 , 4 , 6 
3 , 6 
    8 

は、私がスクリプトに追加する必要があるものがあります? ありがとうございます。 pandas

答えて

1

あなたはこの試みることができる:以下の出力csvあなたの入力して

import pandas as pd 
df = pd.read_csv('lamp_headersimplified.csv', header=None) 
df.transpose().to_csv('lamp1.csv', header = False, index=False) 

それは書いて:

a,b,c,d 
1,2,3,4 
2,4,6, 
3,6, , 
,8, , 
+0

をご提案いただきありがとうございますが、私はあなたのスクリプトを試したとき、私はエラーを取得します。エラーは 'pandas.io.common.CParserError:データをトークン化するエラーです。 Cエラー:2行目の126フィールドが予想されました.298を見ました。 – Ling

+0

ああ、あなたのcsvファイルには、すべての行で同じ数の列(カンマ)がありません。たとえば、最初の行には125個のカンマがあり、2番目の行にはカンマが297個あります。すべての行が同じ数のフィールドを持つようにすることができます(フィールドは空白でも構いません)。 –

+0

同じ数のフィールドではどういう意味ですか?それは同じ列数ですか?私のCSVファイルには同じ数の列がありませんでした。 – Ling