我有一個帶有541列的DataFrame df,並且我需要將其列名的所有唯一對保存到單獨的DataFrame的行中,每個行重複8次。訪問Pandas DataFrame的最快捷方式是什麼?
我想我會創建一個空的DataFrame fp,通過df的列名稱的雙重循環,插入到每第8行,並用最後一個可用值填充空白。
當我試圖做到這一點,雖然我感到困惑的是,它花了多長時間。在541欄中,我只需要寫146,611次,但是花費了20分鐘以上。這對於數據訪問來說似乎太過分了。問題在哪裏,我該如何解決?與Pandas相比,它需要更少的時間來產生與列的相關矩陣,所以我必須做出錯誤的事情。
這裏是我的意思重複的例子:
fp = np.empty(shape = (146611, 10))
fp.fill(np.nan)
fp = pd.DataFrame(fp)
%timeit for idx in range(0, len(fp)): fp.iloc[idx, 0] = idx
# 1 loop, best of 3: 22.3 s per loop