2017-09-26 3 views
0

入力:csvファイル。 サンプルデータどのように私は複数行のcsvファイルをPythonを使って単一行に持っていくのですか?

id,name,gnd,address,second_name. 
"100","xx","m","plot y zzzz city","zx 
yddfe" 

出力:csvファイル。

id,name,gnd,address,second_name. 
"100","xx","m","plot y zzzz city","zxyddfe" 

ソースファイルの最後の列では、データは2行に分割されています。データをロードするには1行にします。

私が試した:私は、適切なレコード数を取得していないです、このコードを使用した後

import csv 

with open("out.csv","w") as fout: 
    with open("sample.csv")as f: 
    firsttline = "" 
    for line in f: 
     if not line.startswith('"'):continue 
     else: 
      line = line.rstrip('\n') 
      firstline = firstline + '\n'+ line 
    print >> fout, firstline 
    with open ("out.csv") as fin: 
     with open("out1.csv","w") as fout1: 
      for line in fin: 
       if not line.isspace(): 
       fout1.write(line) 

。列のデータの一部が欠落しています。私を助けてください。

+0

「続行」を実行すると、データの一部が失われます。この例では 'yddfe'です。間に '\ n 'を付けずに' firstline = firstline + line.rstrip(' \ n ') 'を実行します。 – SBylemans

+0

csvモジュールを使用して、引用されたフィールド内の新しい行を自動的に処理しないのはなぜですか? –

答えて

0

これは、トリックを行います:

import pandas as pd 
df = pd.DataFrame.from_csv('data.csv') 

出力をpandasについて

name gnd   address second_name. 
id           
100 xx m plot y zzzz city zx\r\n yddfe 

詳しい情報のように見えます。 パンダで.csvファイルを読み書きするのはとても簡単です。私は常にcsvライブラリの代わりにそれらを好むでしょう。

+0

パンダを使用していない私は解決策が必要です他のアプローチはありますか? – manyatha

+0

'pandas'は過度です –

+0

非常に使いやすい – Albo

関連する問題