0

I have a pandas DataFrame MultiIndex:

f1  f2  value
2   2   4
2   3   5
3   3   4
4   1   3
4   4   3

I would like to have an output where f1 == f2:

f1  f2  value
2   2   4
3   3   4
4   4   3

Can you suggest an elegant way to select those rows?

1 Answer 1

1

Use boolean indexing if f1, f2 are columns:

df = df[df.f1 == df.f2]
print (df)
   f1  f2  value
0   2   2      4
2   3   3      4
4   4   4      3

If level of MultiIndex are f1, f2 use Index.get_level_values:

df = df[df.index.get_level_values('f1') == df.index.get_level_values('f2')]

Or if f1, f2 are columns names or levels of MultiIndex:

df = df.query('f1 == f2')
print (df)
   f1  f2  value
0   2   2      4
2   3   3      4
4   4   4      3
Sign up to request clarification or add additional context in comments.

1 Comment

Thank you df = df[df.index.get_level_values('f1') == dfdf.index.get_level_values('f2')] worked

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.