所以我有这个非常愚蠢的问题,我一直在徘徊数小时。 我正在练习kaggle的泰坦尼克号练习,使用graphlab创建。Graphlab:替换Sframe中的值和过滤
现在我想在表来代替某些价值观。例如,我想设置(作为测试),年龄为38岁,Pclass == 1 30,Pclass == 2和26年级P级== 3
我已经尝试了很多方法来做到这一点,我迷路了。
所有我现在是:
df = gl.SFrame(data)
df[(df["Pclass"]==1)] #will print the rows of the table where Pclass=1
df["Age"][df["Pclass"]==1] #will display an array containg only the column "Age" for Pclass=1
现在我想正确使用SFrame.apply但我很困惑。
我已经试过
df["Age"][df["Pclass"]==1].apply(lambda x: 38)
返回正确的值的数组,但我不能够将它应用到SFrame。 例如,我曾尝试:
df = df["Age"][df["Pclass"]==1].apply(lambda x: 38)
但现在我的数据帧已经变成了一个列表...(显然)
伊尔也曾尝试:
df["Age"] = df["Age"][df["Pclass"]==1].apply(lambda x: 38)
但我得到的以下错误:“RuntimeError:运行时异常。列__PassengerId-Survived-Pclass-Sex-Age-Fare”与当前列大小不同!“
我确定解决方案非常简单,但我太困惑了,无法自己找到它。
最终我想是这样 DF [ “年龄”] = something.apply(拉姆达X:38如果Pclass == 1否则如果30 Pclass == 2否则如果26 == Pclass 3)
谢谢。
所以我通过这样做了一些进展:df [“Age”] = df [“Age”]。apply(lambda x:38 if x == 1 else 30 if x == 26 else 26)...然而,自写df [“年龄”] = df [“年龄”]以来,我仍然坚持不懈。apply(lambda x:38 if x [“Pclass”] == 1 else 30 if x [“Pclass”] == 26 else 26)返回错误TypeError:'float'object has no attribute'__getitem__' – Mike