2016-10-25 8 views
2

これはおそらく基本的なものですが、私の悲惨な脳は解決策を見つけることを拒否します。PythonからCSVへ:リストのリストへの値の転置と追加

私は次のリスト(またはリストのリスト)を持っている:

#"variables" names 
name=['a', 'b', 'c'] 
#variables values 
value=[[0,1,1],[0,0,0],[1,1,1]] 
#id number of each observation 
id=[100,134,26] 

私はそれがこのようになりますように、CSVファイルへの出力を書きたい:

a, b, c, id 
0, 1, 1, 100 
0, 0, 0, 134 
1, 1, 1, 26 

私がすることができます個々のリスト(またはリストのリスト)のいずれかをCSVファイルに書き込んでも問題ありません。しかし、どのようにidリストを転置して変数値に追加するのですか?一番上に名前を積み重ねることは素晴らしいボーナスになります。私はいつも2つのCSVファイルを作成することができますが、データ操作のエラーの確率が指数関数的に増加するので、そうしないことをお勧めします。 これはコードの私のCSV書き込みビット(かなり標準):

with open('test.csv', 'w', newline='') as f: 
    wtr = csv.writer(f, delimiter= ',') 
    wtr.writerows(full_data) 
#full_data would be the cleaned data to write into CSV file 

ありがとう!

+0

あなたはデータフレームとしてそれを書くことを意味しますか? –

答えて

2

パンダなしでこれを行う方法の1つです。

import csv 

fulldata = [name + ['id']] + [val + [id[i]] for i, val in enumerate(value)] 

with open('mycsv.csv','w') as f: 
    mywriter = csv.writer(f) 
    mywriter.writerows(fulldata) 

はあなたを与える:

a,b,c,id                           
0,1,1,100                          
0,0,0,134                          
1,1,1,26 
+1

もちろん、インデックス作成はもちろんです。ありがとう、魅力のように動作します! –

2
import pandas as pd 

df = pd.DataFrame([i for i in value], columns=name) 
df['id'] = id 
df.to_csv('test.csv') 
+0

ありがとうございます。私はこのマシンにパンダをインストールしていないので、他の答えを好むだけです。しかし論理的には、うまくいくはずです。私は後で探検します。 –

関連する問題