Given a df with the following column,
col=['id','nval',('psd','F1_b0'),('psd','F2_b0'),('psd','F3_b0'),('psd','F1_b2'),('psd','F2_b2'),
('hj','F1'),('hj','F2'),('hj','F3'),('hj','C1'),('hj','C2'),('hj','C3')]
The objective is to select only these columns
('psd','F1_b0'),('psd','F2_b0'),('psd','F3_b0'),('psd','F1_b2'),('psd','F2_b2')
But, accessing via
df.loc[:, ('psd', slice(None))]
Return an error
TypeError: unhashable type: 'slice'
May I know how to properly slice the multiindex column
The following snippet can be used to reproduce the error
import pandas as pd
import numpy as np
col=['id','nval',('psd','F1_b0'),('psd','F2_b0'),('psd','F3_b0'),('psd','F1_b2'),('psd','F2_b2'),
('hj','F1'),('hj','F2'),('hj','F3'),('hj','C1'),('hj','C2'),('hj','C3')]
df=pd.DataFrame(np.random.rand(10,len(col)),columns=col)
h=df.loc[:, ('psd', slice(None))]
Update on another attemp:
df.loc[:, 'psd']
Return
KeyError: 'psd'
Pandas version
pandas 1.3.5