使用变量和类别(binned data)的多个“groupby”出现问题
发布时间:2020-12-20 11:43:11 所属栏目:Python 来源:网络整理
导读:df.dtypesClose float64eqId int64date objectIntDate int64expiry int64delta int64ivMid float64conf float64Skew float64psc float64vol_B categorydtype: objectgb = df.groupby([df['vol_B'],df['expiry']])gb.describe() 我得到一个很长的错误消息,最
df.dtypes Close float64 eqId int64 date object IntDate int64 expiry int64 delta int64 ivMid float64 conf float64 Skew float64 psc float64 vol_B category dtype: object gb = df.groupby([df['vol_B'],df['expiry']]) gb.describe() 我得到一个很长的错误消息,最后一行是 AttributeError: 'Categorical' object has no attribute 'flags' 当我分别对它们中的每一个执行groupby时,它们各自(独立地)工作得很好,我只是不能执行多个groupby,其中一个变量是“bin”. 此外,当我使用2个其他变量时,我能够执行多个groupby& ndash我成功执行了此操作: gb = df.groupby([df['delta'],df['expiry']]) 解决方法
我正面临着与OP类似的问题,并在寻找解决方案时发现了这个问题.经过熊猫
documentation for categorical variables后,一个简单的黑客攻击是在分组之前改变分类变量的类型.
由于vol_B是您的分类变量,因此您应该尝试以下操作 #Depending on the content of vol_B you can do astype(int) or astype(float) as well. gb = df.groupby([df['vol_B'].astype(str),df['expiry']]) 我没有详细说明为什么这样有效,但事实并非如此,但如果我进入它,我会更新答案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |