看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
pandas
的 memory_usage
方法用于查看 DataFrame 或 Series 占用的内存量。这在处理大数据集时特别有用,有助于了解数据在内存中的占用情况,从而进行优化。
DataFrame
Series
对于 DataFrame 和 Series,语法如下:
DataFrame.memory_usage(index=True, deep=False)
Series.memory_usage(index=True, deep=False)
index
(bool, 默认 True
): 是否包含索引的内存使用情况。deep
(bool, 默认 False
): 深度内存检查。如果设置为 True
,将通过系统函数来估算对象占用的实际内存,包括其引用的对象。pandas.Series
,每一列的内存使用情况。如果 index=True
,包括索引的内存使用情况。构造一个简单的 DataFrame 并查看它的内存使用情况:
import pandas as pd
# 构造示例数据
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']
}
df = pd.DataFrame(data)
# 查看 DataFrame 的内存使用情况
df_memory_usage = df.memory_usage()
print(f"示例数据 DataFrame:\n{df}\n")
print(f"DataFrame 的 memory_usage 方法:\n{df_memory_usage}")
输出:
示例数据 DataFrame:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
3 David 40 Houston
DataFrame 的 memory_usage 方法:
Index 128
Name 32
Age 32
City 32
dtype: int64
构造一个简单的 Series 并查看它的内存使用情况:
# 构造示例数据
data_series = pd.Series([10, 20, 30, 40, 50])
# 查看 Series 的内存使用情况
series_memory_usage = data_series.memory_usage()
print(f"示例数据 Series:\n{data_series}\n")
print(f"Series 的 memory_usage 方法: {series_memory_usage} 字节")
输出:
示例数据 Series:
0 10
1 20
2 30
3 40
4 50
dtype: int64
Series 的 memory_usage 方法: 168 字节
在有对象类型数据的情况下,使用 deep=True
参数来进行深度内存检查:
# 构造包含对象类型的示例数据
deep_data = {
'A': ['foo', 'bar', 'baz'],
'B': [1, 2, 3]
}
deep_df = pd.DataFrame(deep_data)
# 使用深度内存检查
deep_df_memory_usage = deep_df.memory_usage(deep=True)
print(f"包含对象类型的 DataFrame:\n{deep_df}\n")
print(f"使用 deep=True 的 memory_usage 方法:\n{deep_df_memory_usage}")
输出:
包含对象类型的 DataFrame:
A B
0 foo 1
1 bar 2
2 baz 3
使用 deep=True 的 memory_usage 方法:
Index 128
A 152
B 24
dtype: int64
通过这些示例,我们可以看到 memory_usage
方法在处理不同类型和规模的数据时的应用。它能够帮助我们了解数据的内存占用情况,尤其是在优化和调试大数据集时非常有用。
更新时间:2024-08-07 17:01:04 标签:pandas python 内存