Skip to content

DOC: Distinguish between different types of boolean indexing #10492 #36869

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Oct 8, 2020
14 changes: 14 additions & 0 deletions doc/source/user_guide/indexing.rst
Original file line number Diff line number Diff line change
Expand Up @@ -933,6 +933,20 @@ and :ref:`Advanced Indexing <advanced>` you may select along more than one axis

df2.loc[criterion & (df2['b'] == 'x'), 'b':'c']

``iloc`` distinguishes between different types of boolean indexing. If the type of boolean indexing is ``Series``,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

iloc supports two kinds of boolean indexing.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the indexer is a boolean Series, ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

an error will be raised. For instance, in the following example, ``df.iloc[sr.values, 1]`` is ok.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what type of error?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see below it's a ValueError, just say that here

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also you need two backticks around ValueError

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

This type of boolean indexing is array. But ``df.iloc[sr, 1]`` would raise ValueError.

.. ipython:: python

df = pd.DataFrame([[1, 2], [3, 4], [5, 6]], list('abc'), ['column_1', 'column_2'])
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

make the column names 'A', 'B' (to make this look a bit cleaner)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

sr = (df['column_1'] > 2)
sr

df.loc[sr, df.columns[1]]

df.iloc[sr.values, 1]

.. _indexing.basics.indexing_isin:

Indexing with isin
Expand Down