[英]convert pandas DF into a formatted dictionary
假設我有以下 dataframe:
myDF = pd.DataFrame([['A','red'],['B','green'],
['C','orange'],['D','purple']], columns = ['letter','color'])
如何將其重新格式化為嵌套字典,以便外部字典的鍵取自字母列,內部字典的鍵取自顏色列名,內部字典的值取自顏色欄...
key | value
-----------------------------
A {color: red}
B {color: green}
C {color: orange}
D {color: purple}
我嘗試了對df.to_dict
的各種嘗試,但均未成功。 如果我導出為 csv,然后使用DictReader
導入,我已經設法以正確的格式獲得它,但這顯然是冗長的。
myFile = csv.DictReader(open('file.csv'))
output = {}
for row in myFile:
key = row.pop('letter')
if key in output:
pass
output[key] = row
嘗試這個:
myDF.set_index('letter').to_dict('index')
Output:
{'A': {'color': 'red'}, 'B': {'color': 'green'}, 'C': {'color': '橙色'}, 'D': {'color ': '紫色的'}}
使用 dict 理解
{row.letter: {'color': row.color} for row in myDF.itertuples()}
Output
{'A': {'color': 'red'}, 'B': {'color': 'green'}, 'C': {'color': 'orange'}, 'D': {'color': 'purple'}}
您可以通過將letter
設置為索引並設置 orient 屬性來實現它 -
myDF.set_index("letter").to_dict(orient="index")
這將完成這項工作:
output_dict = dict()
for (letter, color) in df.values:
output_dict[letter] = {'color': color}
你應該試試這個
import pandas as pd
myDF = pd.DataFrame([['A','red'],['B','green'],
['C','orange'],['D','purple']], columns = ['letter','color'])
mydict = {}
for i in range(0,len(myDF)):
mydict[myDF['letter'][i]] = myDF['color'][i]
print(mydict)
Answer:-{'A': 'red', 'B': 'green', 'C': 'orange', 'D': 'purple'}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.