簡體   English   中英

我的代碼在 Pandas 中正常運行,但在 modin 中沒有

[英]My code is running properly in pandas, but not in modin

當我使用 Pandas 時,代碼運行良好(但速度很慢),當使用 modin 和 concat 數據框時,顯示一個錯誤

contador = 0
df = pd.DataFrame()
data = pd.DataFrame()

for file in range(len(files)):
    usefile = files[file]
    print("Valor Numero :" + str(contador) + " de un total de " + str((len(files))) + " archivos")
    print("Existe " + str(usefile) + " añadiendolo al DataFrame" )
    contador = contador +1
    ruta = mainpath + "/" + str(usefile) 
    df = pd.read_csv(ruta)
    datos[usefile] = df
data = pd.concat(datos.values(), keys=datos.keys() , sort='True')

我希望所有文件都從 dict 連接的數據幀的輸出,但 y 接收(在熊貓中,一切正常):

<ipython-input-4-e5a361476e76> in <module>
     12     df = pd.read_csv(ruta)
     13     datos[usefile] = df
---> 14 data = pd.concat(datos.values(), keys=datos.keys() , sort='True')
     15 

~/anaconda3/lib/python3.7/site-packages/modin/pandas/concat.py in concat(objs, axis, join, join_axes, ignore_index, keys, levels, names, verify_integrity, sort, copy)
     98         new_idx_labels = {
     99             keys[i]: objs[i].index if axis == 0 else objs[i].columns
--> 100             for i in range(len(objs))
    101         }
    102         print(new_idx_labels)

~/anaconda3/lib/python3.7/site-packages/modin/pandas/concat.py in <dictcomp>(.0)
     98         new_idx_labels = {
     99             keys[i]: objs[i].index if axis == 0 else objs[i].columns
--> 100             for i in range(len(objs))
    101         }
    102         print(new_idx_labels)

TypeError: 'dict_keys' object is not subscriptable

基於keysobjs參數是可下標的假設,這是 Modin(版本 0.4)無意中尚未支持的行為。

代碼中的最后一行可以作為一種解決方法進行更改,直到它在 Modin 中得到修復:

data = pd.concat(list(datos.values()), keys=list(datos.keys()) , sort='True')

我在 Modin repo 上創建了一個問題來跟蹤問題: https : //github.com/modin-project/modin/issues/557

暫無
暫無

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

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