熊猫中的loc函数
machine-learning
pandas
python
5
0

谁能用下面的例子解释为什么loc在python熊猫中使用?

for i in range(0, 2):
  for j in range(0, 3):
    df.loc[(df.Age.isnull()) & (df.Gender == i) & (df.Pclass == j+1),
            'AgeFill'] = median_ages[i,j]
参考资料:
Stack Overflow
收藏
评论
共 1 个回答
高赞 时间 活跃

这里推荐使用.loc ,因为方法df.Age.isnull()df.Gender == idf.Pclass == j+1可能返回数据帧切片的视图或可能返回副本。这会使大熊猫感到困惑。

如果不使用.loc ,最终将.loc调用所有3个条件,这将导致您遇到一个称为链式索引的问题。但是,当您使用.loc时, .loc一步即可访问所有条件,而熊猫不再感到困惑。

您可以在pandas文档中阅读有关此内容的更多信息以及不使用.loc会导致操作失败的示例。

简单的答案是,尽管您通常可以不用使用.loc而是简单地键入(例如)

df['Age_fill'][(df.Age.isnull()) & (df.Gender == i) & (df.Pclass == j+1)] \
                                                          = median_ages[i,j]

您将始终收到SettingWithCopy警告,您的代码对此会有些混乱。

以我的经验, .loc花了我一段时间才让我明白,更新代码有点烦人。但这确实非常简单而且非常直观: df.loc[row_index,col_indexer]

有关更多信息,请参见有关索引和选择数据的pandas文档。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号