[問題] DataFrame資料篩選問題

看板Python作者 (RU)時間8年前 (2017/05/15 22:29), 8年前編輯推噓3(301)
留言4則, 2人參與, 最新討論串1/1
各位前輩大家好,小弟想詢問有關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

05/15 23:37, , 1F
pd.merge(A_Table, B_Table, on='ID', how='left')
05/15 23:37, 1F

05/15 23:39, , 2F
然後再用dropna()
05/15 23:39, 2F
我照您的方法試,多了一欄,最後的結果也跟我打的小程式不太一樣, 不知道是不是我的說明不夠清楚? 我等等來加個註解還有最後結果 還是謝謝你啦 ※ 編輯: 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

05/16 00:49, , 3F
很大資料要不要用hadoop啊(我不確定我說的對不對欸
05/16 00:49, 3F

05/16 00:49, , 4F
因為我沒學過QAQ
05/16 00:49, 4F
我找到方法了 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
文章代碼(AID): #1P6RjVyp (Python)