2012-11-16 96 views
2

我試圖在PiCloud上運行一些模型模擬並用Pandas處理結果。 (PiCloud基本上是Amazon集羣的一個接口,通過它我可以在Ubuntu 11.04虛擬環境中運行)。熊貓數據幀索引錯誤:AssertionError:索引和值的長度不匹配

有問題的命令似乎是:

fplf_df = pd.DataFrame(fpld, columns = var_name_list, index = sample_names_ordered) 

FPLD是一個字典(61個鍵即是字符串,和值是一個numpy的陣列(長度爲1),其餘浮),和var_name_list和sample_names_ordered是列表或字符串數​​組。

當我運行包含的命令腳本,所有的PiCloud就業機會,這個錯誤終止:

Traceback (most recent call last): 
File "/usr/local/picloud/.employee/pimployee/job_util.py", line 119, in process_job 
    result = func(*args, **kwargs) 
File "/home/itchy/ecopetrol/ec-working/pecube_scripts/run_eceS1_cloud.py", line 297, in run_pecube_map 
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 125, in __init__ 
sdict, columns, index = self._init_dict(data, index, columns, dtype) 
File "/usr/local/lib/python2.7/dist-packages/pandas/core/frame.py", line 176, in _init_dict 
v = Series(v, index=index) 
File "/usr/local/lib/python2.7/dist-packages/pandas/core/series.py", line 172, in __new__ 
subarr.index = index 
File "/usr/local/lib/python2.7/dist-packages/pandas/core/series.py", line 193, in _set_index 
raise AssertionError('Lengths of index and values did not match!') 
AssertionError: Lengths of index and values did not match! 

開溜的是,當我在我的機器上運行它正常工作,它工作時我ssh進入亞馬遜服務器上的虛擬環境,並使用IPython手動創建DataFrame。我也嘗試通過給出不存在的索引參數或其他任意索引參數來重現錯誤,其中一些是成功的,另一些則不是,但沒有一個提出這個特定的錯誤。在我看來(通過手動測試證實)索引的長度並不重要,因爲這些值只構成一行,所以當索引被添加時,它只是填滿,這正是我想要的。

那究竟是什麼原因導致了這個錯誤呢?我懷疑這個問題的根源在於熊貓,但我認爲如果我有一些想法可以解決熊貓的問題,我可以弄清楚從我的機器到虛擬環境的通信有什麼問題(或者無論真正的問題是什麼)。

它的價值: 我的機器上有熊貓0.9.1rc1(最新的最新的Ubuntu 12.04更新,也許今天上午),亞馬遜env在10月中旬從一個雞蛋0.9.0(我認爲)。在亞馬遜上,來自終端的IPython和普通的python調用似乎正在導入相同版本的Pandas。

任何幫助,將不勝感激。

謝謝!

+0

這可能是一個錯誤。你在本地機器上試過0.9.0嗎?如果可能,最好將討論從這裏轉移到GitHub。 –

回答