我正在上网学习python,导师告诉我们链式索引不是一个好主意。但是,他没有说出是适当的替代方案。
假设我有一个Pandas数据框,其行标记为['1', '2', '3']
,列名为['a', 'b', 'c']
。
使用命令df['1']['a']
提取第一行和第一列中找到的值的适当替代方法是什么?
答案 0 :(得分:8)
使用multi-axis indexing,例如
df.loc['a', '1']
当您使用df['1']['a']
时,您首先访问系列对象s = df['1']
,然后访问系列元素s['a']
,从而导致两次__getitem__
次调用严重超载(处理很多场景,如切片,布尔掩码索引等)。
使用df.loc
索引器效率更高。