Back

Explore Courses Blog Tutorials Interview Questions
0 votes
2 views
in Data Science by (17.6k points)

I have the following pd.DataFrame:

Name    0                       1                      ...

Col     A         B             A           B          ...

0       0.409511   -0.537108   -0.355529    0.212134   ...

1      -0.332276   -1.087013    0.083684    0.529002   ...

2      1.138159    -0.327212    0.570834    2.337718   ...

It has MultiIndex columns with names=['Name', 'Col'] and hierarchical levels. The Name label goes from 0 to n, and for each label, there are two A and B columns.

I would like to subselect all the A (or B) columns of this DataFrame.

1 Answer

0 votes
by (41.4k points)

print df

          1                   2          

          A         B A         B

0  0.543980  0.628078 0.756941  0.698824

1  0.633005  0.089604 0.198510  0.783556

2  0.662391  0.541182 0.544060  0.059381

3  0.841242  0.634603 0.815334  0.848120

Using get_level_values method that you can use in conjunction with boolean indexing:

df = pd.DataFrame(np.random.random((4,4)))

df.columns = pd.MultiIndex.from_product([[1,2],['A','B']])

print df.iloc[:, df.columns.get_level_values(1)=='A']

          1         2

          A         A

0  0.543980  0.756941

1  0.633005  0.198510

2  0.662391  0.544060

3  0.841242  0.815334

If you want to learn more about Pandas then visit this Python Course Designed By Experts.

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer

Browse Categories

...