0
所以,我有以下几点:替代“应用”上熊猫的GroupBy对象
timeDiffFunc = lambda x: x['CP_EX_DT'] - x['CP_EX_DT'].shift(1)
exTimeDiff = assetGrp.apply(timeDiffFunc).fillna(0).reset_index(level=1)
但这使用了我的系统崩溃(类似的问题在这里看到:Memory leak in Pandas.groupby.apply()?)这么多的内存
我问题是,我如何将其转换为不使用apply函数的代码?我试过的变化:
for i, (name,grp) in enumerate(assetGrp):
grp = grp['CP_EX_DT'] - grp['CP_EX_DT'].shift(1)
exTimeDiff = assetGrp.fillna(0).reset_index(level=1)
但总是收到这样的错误:试图将结果合并到数据帧时NotImplementedError: Index._join_level on non-unique index is not implemented
。
任何意见将不胜感激。
现在我只是好奇,但如果你用'.diff()'替换apply函数会发生什么?像assetGrp.diff() – Uvar
您的数据剪切和你想要的输出看起来像会有所帮助。采取前5行,应用您的操作,并粘贴您的输出。 –