2016-12-09 13 views
0

を通じて辞書とPythonでデータフレームを作成する方法、例えばループ

list1=[1,2,3] 
list2=[[1,1,1],[2,2,2],[3,3,3]] 

場合、私は、私は、ループを通してそれを実現するにはどうすればよい

dict1={'1':[1,1,1],'2':[2,2,2],'3':[3,3,3]} 

などの辞書を作成したいのですが?私は試しました

dict1=dict().fromkeys(list1) 
for i in range(len(list1)): 
    dict1['i']=list2[i] 

しかし、私はこの問題に対処する誰かが私を助けることができますか? もう一つの質問は、私が最初に空のデータフレームを作成した場合、DF1

df1=pd.DataFrame() 

と私はDF1のカラムの名前としてリスト1の要素を使用したいと考えています。どうすればそれを実現できますか?

ありがとうございました!

+0

'のdict(ZIP(マップ(STR、LIST1)を、list2)) ' – Julien

答えて

1

あなたは辞書に二つのリストを変換するdict()zip()を使用することができます。

dict(zip(list1, list2)) 
# {1: [1, 1, 1], 2: [2, 2, 2], 3: [3, 3, 3]} 

列としてlist1でデータフレームを構築するには:

pd.DataFrame(dict(zip(list1, list2))) 

# 1 2 3 
#0 1 2 3 
#1 1 2 3 
#2 1 2 3 
0

あなたが使用しようとした場合は、失敗しました

dict1['i'] 

dict1[i] 

リストから生成されたキーを持っていながら、あなただけのキーと文字/文字列iを使用しているので['1','2','3']

つまり、あなたがオフに開始されている場合は、この後、動きのようにそれをコーディングをご覧くださいpythonicの方法を移動する。

dict1 = {} 
for i, key in enumerate(map(str,list1)): 
    if key not in dict1: 
      dict1[key] = list2[i] 

これで辞書について考えることができます。

0

ループを使用する場合は、項目を辞書に追加するだけです。

d = {} 
l = [1,2,3,4,5] 
for i in range(len(l)): 
    d[i] = l[i] 

あなたは印刷あなたが {0:1,1:2,2:3,3:4,4:5}がありますdは