我正在使用熊猫。切()在具有nan的数据帧列上。我需要在的输出上运行groupby熊猫剪(),因此我需要将nan转换为其他内容(在输出中,而不是在输入数据中),否则groupby将愚蠢而恼人地忽略它们。在
我知道cut()现在输出分类数据,但我无法找到向输出中添加类别的方法。我尝试过add_categories(),它运行时没有任何警告或错误,但由于没有添加类别而不能工作,事实上,fillna失败的原因正是这个原因。下面是一个极简主义者的例子。在
有什么想法吗?在
或者有没有一种简单的方法可以把这个定类对象转换成非定类对象?我试过了np.A阵列()但运气不佳-它变成了一个包含间隔对象的数组
import pandas as pd
import numpy as np
x=[np.nan,4,6]
intervals =[-np.inf,4,np.inf]
out_nolabels=pd.cut(x,intervals)
out_labels=pd.cut(x,intervals, labels=['<=4','>4'])
out_nolabels.add_categories(['missing'])
out_labels.add_categories(['missing'])
print(out_labels)
print(out_nolabels)
out_labels=out_labels.fillna('missing')
out_nolabels=out_nolabels.fillna('missing')
这是另一个关于Pandas是如何处理丢失数据的最差工具的问题。就像有人聚在一起想:我们如何才能让那些愚蠢到用Python和Pandas分析数据的人生活更艰难?我知道,让我们把nans从groupby中删除吧!在
正如文档所说,超出界限的数据将被视为Na类别对象,因此不能在分类数据
since the new value you are filling is not in that categories
中使用fillna您不能使用
x.fillna('missing')
,因为missing
不在x
的类别中,但是您可以使用x.fillna('>4')
,因为>4
在该类别中。在我们可以利用np.哪里来克服这个问题
或
^{pr2}$add_categories
的值,即如果您想将nan分组并保留数据类型,一种方法是将其强制转换为str,即如果您有一个数据帧
输出:
相关问题 更多 >
编程相关推荐