如何根据 CSV 文件的大小知道数据框需要多少 RAM?
How to know how much RAM I need for data frame based on the size of CSV file?
我有一个 10.8 GB 的 CSV 文件。我需要阅读它并将其放入数据框中。 (pandas - Python)
我怎么知道我需要多少 RAM?
我的电脑安装了 8 GB 内存,但内存不足。但是,我找到了 Google Colab,它有将近 12.72 GB 的内存。够了吗?
一种估计 CSV 在读取为 DF 时可能需要在 RAM 中的大小的方法,而无需实际手动计算每个字段的大小:
Pandas 提供此功能:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.memory_usage.html
# Given a DF d: (example DF is arbitrary, something I had quickly available)
>>> d.shape
(182442, 2) (rows x cols)
>>> d.dtypes
sta float64
elev float64
>>> d.memory_usage()
Index 128
sta 1459536
elev 1459536
dtype: int64
这将为您提供可用于快速计算的信息
如果您的 CSV 非常大,您可以创建一个小的、有代表性的 CSV 数据样本,并使用例如 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html 将其读入 DF,然后使用上述函数结果能够估计如果您要读取整个文件将需要多少 RAM。此外,请确保您使用与读取操作相同的选项参数来读取 CSV,因为您将用于真实的
关于 DF 的其他数据可用。看到这个所以:get list of pandas dataframe columns based on data type
有了这些信息,您就可以使用上文 link 中介绍的 chunks
迭代器选项来规划处理 DF 的有效策略。
我有一个 10.8 GB 的 CSV 文件。我需要阅读它并将其放入数据框中。 (pandas - Python) 我怎么知道我需要多少 RAM?
我的电脑安装了 8 GB 内存,但内存不足。但是,我找到了 Google Colab,它有将近 12.72 GB 的内存。够了吗?
一种估计 CSV 在读取为 DF 时可能需要在 RAM 中的大小的方法,而无需实际手动计算每个字段的大小:
Pandas 提供此功能:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.memory_usage.html
# Given a DF d: (example DF is arbitrary, something I had quickly available)
>>> d.shape
(182442, 2) (rows x cols)
>>> d.dtypes
sta float64
elev float64
>>> d.memory_usage()
Index 128
sta 1459536
elev 1459536
dtype: int64
这将为您提供可用于快速计算的信息
如果您的 CSV 非常大,您可以创建一个小的、有代表性的 CSV 数据样本,并使用例如 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html 将其读入 DF,然后使用上述函数结果能够估计如果您要读取整个文件将需要多少 RAM。此外,请确保您使用与读取操作相同的选项参数来读取 CSV,因为您将用于真实的
关于 DF 的其他数据可用。看到这个所以:get list of pandas dataframe columns based on data type
有了这些信息,您就可以使用上文 link 中介绍的 chunks
迭代器选项来规划处理 DF 的有效策略。