gpt4 book ai didi

python - Pandas:保存到 csv 时的内存差异(Dataframe 与多索引系列)

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:09 25 4
gpt4 key购买 nike

Pandas to_csv 根据它们是多索引系列还是简单的未堆叠数据帧(后者似乎不到一半大小)写入大小非常不同的文件。

csv 格式背后可能有一些直觉,但我不太明白。

为什么 pandas 系列在 .csv 格式上比 Dataframes 大得多?

生成此示例的代码:

# imports 
import pandas as pd
from numpy.random import random
from random import randint

# generate some data (1000 x 1000)
n_rows = 1000
n_cols = 1000
large = pd.DataFrame(np.random.random((n_rows, n_cols)))

# generate some indexes
large['index_1'] = [randint(0,100) for i in range(n_rows)]
large['index_2'] = [random() for i in range(n_rows)]

# make it a multi-index
large = large.set_index(['index_1', 'index_2']).sort_index()

# save as stacked and unstacked
large.to_csv('unstacked_example.csv')
large.stack().reset_index().to_csv('stacked_example.csv')

然后用ls -lh获取大小:
unstacked_example.csv - 19M堆叠示例.csv - 50M

最佳答案

unstacked 示例中,您只打印了每个索引和每个列一次。在 stacked 示例中,您打印了每个索引 1000 次,每个列值打印了 1000 次。

未堆叠

large.size + large.index.size + large.columns.size

1002000

堆叠

slarge = large.stack()
slarge.size + slarge.index.size

2000000

这就是我们发明表格的原因……因为它通常更方便、更高效。

关于python - Pandas:保存到 csv 时的内存差异(Dataframe 与多索引系列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42188982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com