看板 Python 關於我們 聯絡資訊
各位前輩大家好,小弟想詢問有關pandas中dataframe問題 問題描述: 有兩個table我稱它為A與B,裡面的欄位都一樣,第一欄是ID (同一個table中ID有可能重複所以我沒有把ID設為index) 我要做一個新的table(下稱C),以A為基礎,將B表格中ID也出現在A的資料加到C中 我的解法是用for迴圈,具體程式碼如下: http://tinyurl.com/m37co8j 問題就出在這個for,若是AB兩個table的資料都各有數十萬筆,光跑這個for迴圈 就很花時間了,更別提後續的分析 請問有沒有不用for迴圈的解法? 題外話: 小弟今天要處理的資料集有可能是接近千萬筆,請問有沒有比pandas更快的分析工具? 先謝謝各位了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.64.193 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1494858591.A.F33.html
Metal5566: pd.merge(A_Table, B_Table, on='ID', how='left') 05/15 23:37
Metal5566: 然後再用dropna() 05/15 23:39
我照您的方法試,多了一欄,最後的結果也跟我打的小程式不太一樣, 不知道是不是我的說明不夠清楚? 我等等來加個註解還有最後結果 還是謝謝你啦 ※ 編輯: ruisme (140.113.64.193), 05/15/2017 23:55:52 ※ 編輯: ruisme (140.113.64.193), 05/16/2017 00:05:57 ※ 編輯: ruisme (140.113.64.193), 05/16/2017 00:06:56
HenryLiKing: 很大資料要不要用hadoop啊(我不確定我說的對不對欸 05/16 00:49
HenryLiKing: 因為我沒學過QAQ 05/16 00:49
我找到方法了 C_table = A_table.append(B_table[B_table['ID'].isin(A_table['ID'])]) 這樣就解決了 ※ 編輯: ruisme (140.113.100.202), 05/16/2017 09:35:47