gpt4 book ai didi

python - Pandas cumsum 使用大量内存

转载 作者:太空宇宙 更新时间:2023-11-03 18:22:50 24 4
gpt4 key购买 nike

我在 pandas 中使用 cumsum 来创建运行计数,它占用的内存比数据帧本身占用的内存还要多。我正在运行的函数如下:

def gen_obs_num(df):
df.sort(columns=['Index', 'Date'], inplace=True)
df['obs_num'] = 1
df['obs_num'] = df.groupby(['Index', 'Date'])['obs_num'].cumsum()
return df

知道如何以更有效的内存方式执行相同的操作吗?

基本上我想向以下格式的数据框中添加一列:

Index       Date
A 1/1/2000
A 1/2/2000
A 1/2/2000
B 1/1/2000
B 1/1/2000
B 1/10/2000

这样就变成了:

Index       Date      obs_num
A 1/1/2000 1
A 1/2/2000 1
A 1/2/2000 2
B 1/1/2000 1
B 1/1/2000 2
B 1/10/2000 1

最佳答案

DSM 的解决方案极大地减少了内存使用量。重申一下,最好的方法是使用 cumcount() 代替:

df['obs_num'] = df.groupby(["Index", "Date"]).cumcount() + 1

关于python - Pandas cumsum 使用大量内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23793911/

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