Pandas带着许多钥匙经过

2024-10-03 00:27:57 发布

您现在位置:Python中文网/ 问答频道 /正文

提前道歉。我是Python/Pandas的新手,所以这个问题可能提出得不好。你知道吗

我有一个大约400万行和大约10列的数据帧。你知道吗

我想计算第一列(比如A)的平均值,每个组由其他列(比如B,C,D,E,F,G,H,I,J)的不同值定义。这定义了大约200000个组。你知道吗

我试过群比

mytest = df.groupby(['B','C','D', 'E', 'F', 'G', 'H', 'I', 'J'])
mytest.mean()

这会导致Python获取计算机上的所有内存(32GB)并崩溃。在Stata中,键入以下内容时可以获得所需的结果:

collapse A, by(B C D E F G H I J)

就像冠军一样。你知道吗

如何使用Pandas/Python执行相同的操作?非常感谢您的帮助。你知道吗


Tags: 数据内存pandasdf键入定义计算机mean
1条回答
网友
1楼 · 发布于 2024-10-03 00:27:57

我刚查过这个

df = pd.DataFrame((np.random.rand(4000000, 10) * 10).astype(int),
                   columns=list('ABCDEFGHIJ'))

gb = df.groupby(list('BCDEFGHIJ'))

gb.mean()

没有问题。我也在32 GB内存机上。我已经用了一堆内存,这并没有产生太大的影响。我猜问题是:

This defines about 200,000 groups.

我能想到的另一件事是将groupby对象限制在['A']列。像这样:

gb = df.groupby(list('BCDEFGHIJ'))['A']

否则,您将不得不编写另一个算法。。。也许 吧。你知道吗

相关问题 更多 >