我有一个没有指定数据类型的DataFrame df,这是一个条件频率表,其中标题按以下方式组织:
数据属性,不包括X的所有值v的X | freq_v列
我通过执行外部联接获得频率列,该联接将NaN值引入数据帧。因此df.fillna(0)工作得非常好,直到我使用data.cut()对原始数据集进行离散化,其中数据也是一个数据帧。现在我收到ValueError
到目前为止,我所尝试的:
for header in list(df):
if 'freq_' in header:
catcol = pd.Series(df[header], dtype='category')
catcol.cat.add_categories(0)
catcol.fillna(0)
cft[header] = catcol
这应该是将频率列从数据帧中取出,将它们转换为分类序列,这样我就可以引入新的类别,并在用序列覆盖原始列之前应用fillna()。然而,它仍然抛出完全相同的错误。我怎样才能做得更好
正如Ben.T所解释的,cat.add_categories返回一个新的序列,因此我需要按以下方式更改代码:
相关问题 更多 >
编程相关推荐