我使用pandas来聚合我的数据集,但我在计算字段时遇到了问题。
以下是我的代码
df = self.df.groupby('year').apply(lambda x: pd.Series(dict(
calc1=(x.vol).sum()/(x.hours).sum() if (x.hours).sum() > 0 else 0,
calc2=(x.vol_2).sum()/calc1 if calc1 > 0 else 0,
)))
在第三行中,我试图利用dict中的第一个元素,但它一直返回错误
AttributeError:“”DataFrame“”对象没有“”calc1“”属性“”
有没有办法使用之前创建的计算字段,或者有什么解决方法?
发布于 2021-03-01 10:10:37
我不确定是否可以通过
以及尚未完成的字典中的引用条目。作为快速解决方案:
def my_func(x):
d = dict(calc1=(x.vol).sum()/(x.hours).sum() if (x.hours).sum() > 0 else 0)
d['calc2'] = (x.vol_2).sum()/d['calc1'] if d['calc1'] > 0 else 0
return pd.Series(d)
df = self.df.groupby('year').apply(my_func)
https://stackoverflow.com/questions/66419827
复制