What’s the alternative to pandas chain indexing?

Use multi-axis indexing, e.g.

df.loc['a', '1']

When you use df['1']['a'], you are first accessing the series object s = df['1'], and then accessing the series element s['a'], resulting in two __getitem__ calls, both of which are heavily overloaded (handle a lot of scenarios, like slicing, boolean mask indexing, and so on).

It’s much more efficient to use the df.loc indexer.

Leave a Comment