Pandas 中的 groupby 对象是否存储原始数据帧的内容

问题描述 投票:0回答:1

我有一个包含名为 A、B 和 C 的三列的 DF。我的目标是查看 groupby 是否存储 DF 的副本。我的测试代码片段如下:

# Make Df with columns A, B, C.
grp = df.groupby(by=['A', 'B'])
del df  
print(grp.transform(lambda x: x))  # This line outputs the whole DF.

上面的代码片段似乎表明

grp
包含DF,因为原始DF已被删除,而
grp
仍然可以产生它。这个结论是真的吗?

可能是

grp
维护了一个指向 DF 的指针,并且在
del
操作之后,引用计数不会变为零,因此数据会挂在内存中供
grp
使用。这是真的吗?

我的 Pandas 是 V 2.2.2。预先感谢您的澄清。

python pandas dataframe group-by
1个回答
0
投票

原始

df
存储在
groupby.obj
:

import pandas as pd
import numpy as np

np.random.seed(0)

df = pd.DataFrame(np.random.rand(3, 3), columns=['A', 'B', 'C'])

grp = df.groupby(by=['A', 'B'])

输出:

grp.obj

          A         B         C
0  0.548814  0.715189  0.602763
1  0.544883  0.423655  0.645894
2  0.437587  0.891773  0.963663

平等检查:

grp.obj.equals(df)
# True
© www.soinside.com 2019 - 2024. All rights reserved.