【发布时间】:2019-06-12 22:52:36
【问题描述】:
考虑这个简单的数据集,其列被分位数切割。
kyle = pd.DataFrame({'foo':np.random.randint(0,100,100),'boo':np.random.randint(0,100,100)})
kyle.loc[:,'fooCut'] = pd.qcut(kyle.loc[:,'foo'], np.arange(0,1.1,.1))
kyle.loc[:,'booCut'] = pd.qcut(kyle.loc[:,'boo'], np.arange(0,1.1,.1))
Pandas 的早期版本按预期处理以下内容...
pd.crosstab(kyle.fooCut,kyle.booCut)
更新到'0.24.2'版本后,上面给我一个TypeError: Cannot cast array data from dtype('float64') to dtype('<U32') according to the rule 'safe'
有谁知道为什么以及如何解决这个问题? 注意这里,kyle.boocut.dtype 返回 CategoricalDtype,该类型与 pd.crosstab documentation and example 中的类型相同,用于分类变量。
[更新]
这是 pandas 中已知的bug,正在修复中
【问题讨论】:
-
你的 aggfunc 是什么?
标签: python pandas categories crosstab