Добавить в корзинуПозвонить
Найти в Дзене

Сокращение использования памяти на ~49,9% для фрейма данных

import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import os import plotly.graph_objects as go Очень полезная функция для экономии памяти, используемой для фрейма данных. Давайте посмотрим, как это работает с фреймом данных о ценах на акции Apple. # let's load prices for Apple from Huge Dataset with +1290 cols # df = pd.read_csv("/kaggle/input/usa-stocks-prices-ohlcv/D1/MSFT.US_D1.csv") df = pd.read_csv("/kaggle/input/extra-us-stocks-market-data/D1/AAPL.US_D1.csv") df # сколько памяти занимает этот df? df.info() <class 'pandas.core.frame.DataFrame'>
RangeIndex: 6577 entries, 0 to 6576
Columns: 1298 entries, datetime to willr_100
dtypes: float64(1296), int64(1), object(1)
memory usage: 65.1+ MB # применение функции для сокращения использования памяти
df = reduce_mem_usage(df, verbose=1) Memory usage of dataframe is 65.13 MB
Memory usage after optimization is: 32.59 MB
Decreased by 49.96% # сколько памяти занимает этот df на да

import numpy as np # linear algebra import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import os import plotly.graph_objects as go

Очень полезная функция для экономии памяти, используемой для фрейма данных. Давайте посмотрим, как это работает с фреймом данных о ценах на акции Apple.

# let's load prices for Apple from Huge Dataset with +1290 cols

# df = pd.read_csv("/kaggle/input/usa-stocks-prices-ohlcv/D1/MSFT.US_D1.csv")

df = pd.read_csv("/kaggle/input/extra-us-stocks-market-data/D1/AAPL.US_D1.csv") df

# сколько памяти занимает этот df?

df.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6577 entries, 0 to 6576
Columns: 1298 entries, datetime to willr_100
dtypes: float64(1296), int64(1), object(1)
memory usage: 65.1+ MB

использование памяти: 65.1+ MB

test1
-2

# применение функции для сокращения использования памяти
df = reduce_mem_usage(df, verbose=1)

Memory usage of dataframe is 65.13 MB
Memory usage after optimization is: 32.59 MB
Decreased by 49.96%

# сколько памяти занимает этот df на данный момент?
df.info()

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6577 entries, 0 to 6576
Columns: 1298 entries, datetime to willr_100
dtypes: float32(1296), int32(1), object(1)
memory usage: 32.6+ MB

Теперь мы видим действительно хорошие улучшения в отношении затрат на память: они снизились на 49,96%!

И теперь наш фрейм данных занимает только 32,6 МБ

Действительно крутое достижение! Используйте эту функцию reduce_mem_usage и сэкономьте свою память))) Спасибо!