我正在处理非常大的文本文件(大约 4GB)
- 该文件有 3 列,其中前两列是字符串,第三列是 float 。
- 我首先使用
pandas.read_csv()
加载此文件 - 前两列将用作索引中的键(2 个字符串的元组), float 将位于一列中。< - 鉴于我有一个 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]
最佳答案
我也遇到了同样的问题。这是因为多索引。如果可能,避免对庞大数据集使用多重索引
关于python - 为什么python pandas dataFrame的内存消耗这么大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32378006/