簡體   English   中英

如何通過循環在Python中創建字典和數據框

[英]How to create a dictionary and a dataframe in Python through loops

例如,如果

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()

我希望將list1中的元素用作df1的列名稱。 我怎么知道呢?

謝謝你的協助!

您可以將zip()dict() ,將兩個列表轉換為字典:

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

如果您嘗試使用失敗

dict1['i']

代替

dict1[i]

由於您僅使用字母/字符串i作為鍵,而您具有從列表生成的鍵,即['1','2','3']

如果您剛開始,應該考慮像這樣編寫代碼,然后移動python方式。

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

這會讓您思考字典。

如果要使用循環,可以將項目附加到字典中。

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

當您打印d時,您將得到{0:1,1:2:2,2:3,3:4,4,4:5}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM