我需要處理一個包含300萬行和7列的大型csv文件。 形狀數據框的:(3421083,7)高效處理3百萬熊貓數據幀行
我的計劃是刪除包含一定值(客戶)的所有行這是我如何着手:
#keep track of iterations
track = 0
#import all transactions (orders.csv)
transactions = pd.read_csv('transactions.csv')
#We select all orders that are electronics orders and put them into a df
is_electronics = transactions[transactions.type == "electronics"]
#Create arrays that will store users to destroy in transactions.csv
users_to_remove = []
#iterate to add appropriate values:
# we add all users that ordered electronics to a list
for user in is_electronics.user_id:
users_to_remove.append(user)
#We delete from orders.csv
for user in users_to_remove:
transactions = transactions[transactions.user_id != user]
track += 1
if track == 100000:
print(track)
track = 0
transactions.to_csv('not_electronics.csv', index = False)
此操作需要年齡進出口運行它自1小時後,它仍然沒有完成。
我有一個四核心桌面i5與3.2 ghz和8GB的內存。但在活動監視器中,計算機只使用5克ram和40%的cpu。
有什麼辦法可以加速這個過程的計算嗎?通過更改代碼或使用其他庫?
我也有一個gpu(gtx 970)我可以用它來處理這個嗎?
謝謝。
你有超過3百萬條目,並且你的代碼是[偶然二次](http://accidentallyquadratic.tumblr.com/)。糟糕的組合。 –
我甚至不確定你爲什麼要使用這個熊貓。只需流式傳輸csv。 –