gpt4 book ai didi

python - Pandas 中的 loc 函数

转载 作者:IT老高 更新时间:2023-10-28 21:12:12 24 4
gpt4 key购买 nike

谁能解释一下为什么在 python pandas 中使用 loc 并举例如下所示?

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]

最佳答案

这里推荐使用 .loc,因为方法 df.Age.isnull()df.Gender == idf.Pclass == j+1 可能会返回数据框切片的 View ,也可能会返回副本。这会让 pandas 感到困惑。

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

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

简单的答案是,虽然您通常可以不使用 .loc 并简单地输入(例如)

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

您总是会收到 SettingWithCopy 警告,并且您的代码会因此变得更加困惑。

根据我的经验,.loc 花了我一段时间才弄清楚,更新我的代码有点烦人。但它真的 super 简单而且非常直观:df.loc[row_index,col_indexer]

有关更多信息,请参阅 Indexing and Selecting Data 上的 pandas 文档。 .

关于python - Pandas 中的 loc 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31571217/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com