2016-11-22 108 views
0

我需要在很多文件上運行腳本。我試圖建立一個數據庫,所以我不必再次重做計算。現在,我使用JSON轉儲到輸出的每個文件的結果包含字典如下一個txt:在python中處理字典的最佳方式是什麼?

{"ARG": [98.1704330444336, 41.769107818603516, 73.10748291015625, 45.386558532714844, 66.13928985595703, 170.6997833251953, 181.3068084716797, 163.4752960205078, 105.4854507446289], "LEU": [28.727693557739258, 37.46043014526367, 13.47089672088623, 53.70556640625, 4.947306156158447, 0.17834201455116272], "ASP": [], "THR": [82.61577606201172, 66.58378601074219], "ILE": [114.99510192871094, 0.0, 41.7198600769043], "CYS": [], "LYS": [132.67730712890625, 34.025794982910156, 116.17617797851562, 95.01632690429688], "PHE": [2.027207136154175, 14.673666000366211, 33.46115493774414], "VAL": [], "SER": [87.324462890625, 100.39542388916016, 20.75590705871582, 49.42512893676758], "ASN": [115.7877197265625, 68.15550994873047, 79.04554748535156, 62.12760543823242], "MET": [], "TRP": [5.433267593383789], "GLN": [103.35163879394531, 12.17470932006836, 83.19425201416016, 81.73150634765625, 31.622051239013672], "PRO": [116.5839614868164], "TYR": [143.76821899414062], "GLU": [32.767948150634766, 112.40697479248047, 151.73361206054688, 53.77445602416992, 137.96853637695312, 137.53512573242188], "ALA": [81.7466812133789, 59.530941009521484, 30.13962173461914, 88.2237319946289], "GLY": [68.45809936523438], "HIS": []} 

我可以重新載入字典使用JSON負載。我想知道處理數據的最佳方法是什麼,知道我將使用所有這些txt文件將它們加入到一個巨大的字典中。所有字典中的鍵都是相同的。我會嘗試將所有這些「列表」值附加到一個大列表中作爲每個鍵的值。我會做一些數學運算,加法,除法,繪製直方圖,聚類,等等。

我想知道你會怎麼做,如果我上面描述的將是低效率或計算昂貴的數據將是巨大的。

+2

你有沒有看着NoSQL數據庫讀? https://en.wikipedia.org/wiki/NoSQL#Types_and_examples_of_NoSQL_databases – bslawski

+0

你的問題應該提到,總共只有20個(左右)的鍵;不是每個人都使用生物數據。 :) –

+0

對不起。是的,字典將始終有20個氨基酸密鑰。我上面發佈了一個完整的詞典。 –

回答

0

一如既往取決於。如果您確定會有大量數據,您可以考慮使用pandas庫for python(http://pandas.pydata.org/)。

它是一個非常強大的數據分析庫,它使您能夠直接對其數據類型進行加法,除法,直方圖等。在解決類似(我相信)給你的問題時,我發現它非常有用並且易於使用。

如果你使用這個解決方案,你可以使用熊貓的DataFrame對象(而不是蟒蛇dict)來存儲數據,並對此對象執行所有提到的操作。

熊貓數據類型也有一個很好的InterfaceC仍用於寫入/來自文件(即DataFrame.to_json(...)

+0

謝謝。我只是看着熊貓,因爲我從來沒有用過它。所以,如果我有一個循環輸出一個像上面發佈的字典。我應該如何製作一個數據框?數據框應該有什麼結構?我需要知道什麼命令來完成總和,分割,直方圖等等? –

相關問題