簡體   English   中英

為什么python pandas dataFrame的內存消耗這么大?

[英]Why the memory consumption of python pandas dataFrame is so big?

我正在處理非常大的文本文件(大約 4GB)

  • 該文件有 3 列,其中前兩列是字符串,第三列是浮點數。
  • 我首先使用pandas.read_csv()加載此文件 - 前兩列將作為索引(2 個字符串的元組)中的鍵,浮點數將位於一列中。
  • 鑒於我有一個 DataFrame(由read_csv()生成),我需要使用預定義的鍵列表從第三列中獲取值。

當我嘗試使用loc()lookup() ,內存使用量急劇增加到 ~16GB,這會導致線程由於內存交換而變得非常慢。

為什么會發生這種情況? 我的任務還有其他選擇嗎?

這是我的代碼的快照:

similarity_df = pd.read_csv(similarity_dir, sep=' ', header=None, index_col=[0, 1])

values_df = similarity_df.loc[list_tup]

我遇到了同樣的問題。 這是因為多索引。 如果可能,避免對大量數據集使用 MultiIndexes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM