使用值列表/数组压缩pandas DataFrame的行

2024-10-01 13:42:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在的代码是

from numpy import *

def buildRealDataObject(x):
    loc = array(x[0])
    trueClass = x[1]
    evid = ones(len(loc))
    evid[isnan(loc)] = 0
    loc[isnan(loc)] = 0
    return DataObject(location=loc, trueClass=trueClass, evidence=evid)

if trueClasses is None:
    trueClasses = zeros(len(dataset), dtype=int8).tolist()    
realObjects = list(map(lambda x: buildRealDataObject(x), zip(dataset, trueClasses)))

它正在起作用。我期望的是为数据帧dataset的每一行与trueClassesarealObject的对应条目一起创建。我不太确定它为什么工作,因为如果运行list(zip(dataset, trueClasses))我只得到[(0, 0.0), (1, 0.0)]之类的东西。dataset的两列称为0和{}。所以我的第一个问题是:为什么这是有效的,这里发生了什么?

然而,我认为这在某种程度上仍然是错误的,因为这可能仅仅是因为熊猫的“巧妙的隐性转化”才起作用。另外,对于evid[isnan(loc)] = 0行,我现在得到了错误

^{pr2}$

我应该如何重写这段代码?


Tags: 代码fromimportnumpylen错误zipdataset