Since .ix
已经自 Pandas 0.20 起已弃用 http://pandas-docs.github.io/pandas-docs-travis/whatsnew.html#deprecate-ix,我想知道在 Pandas 中混合基于标签、基于布尔和基于位置的索引的正确方法是什么?我需要将值分配给数据帧的切片,该切片可以通过索引上的标签或布尔值以及列上的位置进行最佳引用。例如(使用.loc
作为所需切片方法的占位符):
df.loc[df['a'] == 'x', -12:-1] = 3
显然这不起作用,我得到:
TypeError: cannot do slice indexing on <class 'pandas.core.indexes.base.Index'> with these indexers [-12] of <class 'int'>
如果我使用.iloc
, I get:
NotImplementedError: iLocation based boolean indexing on an integer type is not available
那么我该如何做到这一点,而不使用链接,显然是为了避免链接分配问题。
让我们将 .loc 与布尔索引一起使用,并通过带有索引切片的数据帧列索引访问列标签:
df.loc[df['a'] == 'x', df.columns[-12:-1]] = 3
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)