gpt4 book ai didi

python - pandas groupby 有很多键

转载 作者:太空宇宙 更新时间:2023-11-03 16:37:42 25 4
gpt4 key购买 nike

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

我有一个包含大约 400 万行和大约 10 列的数据框。

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

我尝试过 groupby,例如

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 进行相同的操作?非常感谢任何帮助。

最佳答案

我刚刚运行了这个

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']

否则,您将不得不编写另一个算法......也许。

关于python - pandas groupby 有很多键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37078946/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com