df -> ["user_id", "num_posts", "posts" ...]
我的 df 由包含 reddit 用戶帳戶資料的行組成;其中每一行的“帖子”包含該用戶的一系列單獨的帖子。
某些用戶的帖子數量最多可達 6000 條。
data = pd.DataFrame(columns=["user_id","posts"])
for row in df.itertuples():
for post in row[ : len(row[3])]:
new_row = [row[1], post ]
data.loc[len(data)] = new_row
似乎內部 for 回圈,迭代來自 itertuples 的結果使得這非常慢!
即使我將單個用戶的最大帖子數設定為 100,即使在高性能遠程服務器上運行,代碼也不會回傳數小時!
關于如何改進運行時的任何想法?
uj5u.com熱心網友回復:
我已經用串列理解測驗了你的代碼詩“concat”方法,我用串列理解快了 12 倍:
data = pd.concat([pd.DataFrame([[row[1], post] for post in row], columns=["user_id", "posts"])
for row in df.itertuples()], ignore_index=True)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/480601.html
