【发布时间】:2020-04-26 17:25:58
【问题描述】:
更新:我意识到每次新运行都会创建一个新的 Python 控制台,这会导致更多的内存消耗。我不得不关闭为每次运行创建新控制台的设置。当我出于某种原因升级到 Pycharm pro 时,此功能自动启用。现在,内存消耗稳定。
我的项目创建了一个名为“pressure_drop”的 csv,我想使用下面的代码创建一个新的 pandas 数据框。
此示例中的 pressure_drop.csv 有 10150 行和 12 列。如您所见,我正在删除一些不需要显示的列,然后通过分配行和列索引来创建数据框。最后,将其写入一个新的 .csv 文件,该文件更具可读性,我将使用它来创建交互式图表等。
问题是,每次在控制台中运行代码时,Python 都会占用更多的内存空间,如果代码运行次数足够多,Python 最终会崩溃。你能帮我理解为什么会这样吗?
例如,Python 每次为上述数据集运行代码时会多占用约 100 MB。
import pandas as pd
def data_frame_creator(result_array):
array = results_csv_loader(result_array)
array = np.delete(array,[3,4,5,6,7],1)
len = array.shape
row_count = len[0] +1
df = pd.DataFrame(data = array, index=[np.arange(1,row_count)], columns=columns.dataframe_columns)
df.to_csv('Output.csv')
data_frame_creator('pressure_drop.csv')
【问题讨论】:
-
当你的意思是“熊猫”时不要说“Python”,尤其是
pd.to_csv()。另外,显然不要尝试运行多个实例同时写入同一个文件。 -
请向我们展示
result_array的 5 行 sn-p(以文本形式发布,而不是屏幕截图)。没有你发布result_array,the usual standard advice applies about handling huge CSVs:为每个类别指定dtype,这样你就不会通过阅读例如浪费大量内存。日期时间作为唯一字符串。
标签: python python-3.x pandas memory-management out-of-memory