一、原理,注意点:字符串存储,所以dtypes的类型要为object
image.png
二、读书数据,获取原始df的大小
import pandas as pd
df = pd.read_csv(r"D:\node\nd\Pandas_study\pandas_test\users.dat",
sep="::",
engine="python",
header=None,
names="UserID::Gender::Age::Occupation::Zip-code".split("::"))
a = df.head()
#仅计算指针引用的大小
b = df.info()
print(b)
#整个df的大小
c = df.info(memory_usage= 'deep')
print(b)
image.png
image.png
三、使用categorical类型降低存储量,对数据的展示和使用没有影响
#复制一份新的df_cat,不影响以前的df
df_cat = df.copy()
#Gender是object类型
df_cat["Gender"] = df_cat["Gender"] .astype("category")
c = df_cat.info(memory_usage= 'deep')
print(c)
image.png
四、提升运行速度
import timeit
#老的df
def a():
return df.groupby("Gender").size()
#经过category处理后的df
def b():
return df_cat.groupby("Gender").size()
print(timeit.timeit(stmt=a,number = 1))
print(timeit.timeit(stmt=b,number = 1))
image.png