Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- sqlite
- PER
- ASP
- MS-SQL
- 맛집
- port
- IOS
- urllib
- 유니티
- flutter
- 라즈베리파이
- PyQt5
- Unity
- tensorflow
- pandas
- 다이어트
- python
- node.js
- 날짜
- mssql
- 리눅스
- 함수
- Excel
- ubuntu
- Linux
- swift
- MySQL
- javascript
- GIT
- PyQt
Archives
아미(아름다운미소)
메모리측정 본문
import pandas as pd
def report_memory_usage(df: pd.DataFrame, sort: bool = True, top: int = None) -> pd.DataFrame:
"""
DataFrame의 열별 실제 메모리 사용량을 GB 단위로 리포팅합니다.
'Index'는 제외됩니다.
Args:
df (pd.DataFrame): 측정할 DataFrame
sort (bool): 메모리 사용량 기준 정렬 여부 (default: True)
top (int): 상위 N개 열만 출력 (default: None: 전체)
Returns:
pd.DataFrame: 열별 메모리 사용량(GByte), dtype 포함
"""
usage = df.memory_usage(deep=True) / 1024**3 # GB 단위
usage = usage.drop('Index') # 🔧 'Index' 항목 제거
usage_df = pd.DataFrame({
'column': usage.index,
'memory_gb': usage.values,
'dtype': [df[col].dtype for col in usage.index]
})
if sort:
usage_df = usage_df.sort_values(by='memory_gb', ascending=False)
if top:
usage_df = usage_df.head(top)
usage_df.reset_index(drop=True, inplace=True)
total = usage_df['memory_gb'].sum()
print(f"🧠 Total memory usage (columns only): {total:.4f} GB")
return usage_df
df = pd.DataFrame({
'id': range(10_000_000),
'name': ['apple'] * 10_000_000,
'value': [3.14] * 10_000_000
})
mem_report = report_memory_usage(df)
print(mem_report)
🧠 Total memory usage: 0.5584 GB
column memory_gb dtype
0 name 0.3810 object
1 id 0.0763 int64
2 value 0.0763 float64
def report_memory_usage(df: pd.DataFrame, sort: bool = True, top: int = None, df_name: str = None) -> pd.DataFrame:
"""
DataFrame의 열별 실제 메모리 사용량을 GB 단위로 리포팅합니다.
'Index'는 제외됩니다.
Args:
df (pd.DataFrame): 측정할 DataFrame
sort (bool): 메모리 사용량 기준 정렬 여부 (default: True)
top (int): 상위 N개 열만 출력 (default: None: 전체)
df_name (str): DataFrame 이름 (default: None)
Returns:
pd.DataFrame: 열별 메모리 사용량(GByte), dtype 포함
"""
usage = df.memory_usage(deep=True) / 1024**3 # GB 단위
usage = usage.drop('Index') # 'Index' 항목 제거
usage_df = pd.DataFrame({
'column': usage.index,
'memory_gb': usage.values,
'dtype': [df[col].dtype for col in usage.index]
})
if sort:
usage_df = usage_df.sort_values(by='memory_gb', ascending=False)
if top:
usage_df = usage_df.head(top)
usage_df.reset_index(drop=True, inplace=True)
total = usage_df['memory_gb'].sum()
if df_name:
print(f"🧠 Total memory usage of '{df_name}' (columns only): {total:.4f} GB")
else:
print(f"🧠 Total memory usage (columns only): {total:.4f} GB")
return usage_df
Comments