2017-08-07 62 views
0

我正在研究一個需要迭代和比較大量數據集中的大量值的項目。下面的示例代碼 - 顯示了我對2個數據集的思考 - 並且有點慢。我想知道是否有更好的模式來進行我應該使用的這種類型的比較。我下面的代碼顯示了2組數據,但假設有10組數據,我需要迭代並比較數據集1的詢問和數據集2的出價,然後詢問數據集2和數據集1的出價。現在使用10個數據集複雜化不是2.這就是爲什麼我想就這個最好的模式提出一些建議。在幾個數據集中比較大數值

j1 = json.loads(r1) # json response contains MANY values for ASKS and BIDS 
j2 = json.loads(r2) # json response, contains MANY values for ASKS and BIDS 
for ask, aval in j1['eth_btc']['asks']: 
    for bid, bval in j2['eth_btc']['bids']: 
     if ask < bid: 
      if aval <= bval: 
       # do some stuff! 
# now do the reverse - ASK from J2 and BID from J1 
for ask, aval in j2['eth_btc']['asks']: 
    for bid, bval in j1['eth_btc']['bids']: 
     if ask < bid: 
      if aval <= bval: 
       # do some different stuff! 

感謝您提供任何幫助。

+0

你可以加載你的文件到Pandas DataFrame中嗎? – RagingRoosevelt

+0

我通常使用集合論來處理這些問題,並使用熊貓數據框或數據庫表。你也可以使用set數據類型。嘗試引導以避免循環。 – toasteez

+0

只是充分披露 - 在這裏是什麼樣的數據看起來像一個小的子集:R = 「」「{ 」eth_btc「:{ 」問「: [105.426,0.01], [105.5,15], [104.504,0.425], [105.505,0.1] ], 「出價」:[ [103.2,2.48502251], [103.082,0.46540304], [104.91,0.99007913], [102.83,0.07832332] ] } }「」「我從來沒有使用熊貓,但聽說過它。是否有一組特定的熊貓功能,您認爲最適合這種類型的比較? – TokyoMike

回答

0

我繼續調查這和所遇到的方法(我沒有刻意去更新變量名是短暫的):

from itertools import zip_longest 
for x, y in zip_longest(xpts, ypts): 
    print(x,y) 

這爲我提供了巨大的性能提升。如果任何人有一個更高效的另一種模式的想法,請讓我知道。