ken*_*way 17 python machine-learning pandas
任何人都可以解释为什么loc在python pandas中使用的例子如下所示?
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]
Run Code Online (Sandbox Code Playgroud)
Kir*_*ane 21
.loc
这里推荐使用因为方法df.Age.isnull()
,df.Gender == i
并且df.Pclass == j+1
可能返回数据帧的切片视图或者可能返回副本.这可能会混淆熊猫.
如果你不使用.loc
你最终会串联调用所有3个条件,这会引发一个称为链式索引的问题..loc
但是,当您使用时,您只需一步即可访问所有条件,并且不再混淆熊猫.
您可以阅读有关此内容的更多信息以及一些不使用时.loc
会导致操作在pandas文档中失败的示例.
简单的答案是,虽然你可以经常逃避不使用.loc
和简单地打字(例如)
df['Age_fill'][(df.Age.isnull()) & (df.Gender == i) & (df.Pclass == j+1)] \
= median_ages[i,j]
Run Code Online (Sandbox Code Playgroud)
你总会得到SettingWithCopy
警告,你的代码会有点麻烦.
根据我的经验.loc
,我花了一段时间来解决问题,更新我的代码有点烦人.但它真的非常简单而且非常直观:df.loc[row_index,col_indexer]
.
有关更多信息,请参阅有关索引和选择数据的pandas文档.
归档时间: |
|
查看次数: |
30614 次 |
最近记录: |