there dataframe has multipleindex column. know can use .xs()
following code, when want select 1 column name , level name.
df.xs('column_name1', level='column_level1', axis=1)
in specific case, want select multiple column names following code. (actually doesn't work, because .xs doesn't support way.)
df.xs(['column_name1', 'column_name2'], level='column_level1', axis=1)
how select multiple column names in specific 1 level?
i show more specific code.
import pandas pd import io data = u""" column_name1,column_name2,column_name3 column_namea,column_nameb,column_namec 0.1,1,10 0.2,2,20 0.3,3,30 """ df = pd.read_csv(io.stringio(data), header=[0, 1]) df.columns.names = ['column_level1', 'column_level2'] print df
df
this
column_level1 column_name1 column_name2 column_name3 column_level2 column_namea column_nameb column_namec 0 0.1 1 10 1 0.2 2 20 2 0.3 3 30
and, want make data column name
column_level1 column_name1 column_name2 column_level2 column_namea column_nameb 0 0.1 1 1 0.2 2 2 0.3 3
you can try select
:
print df.select(lambda x: x[0] in ['column_name1','column_name2'], axis=1) column_level1 column_name1 column_name2 column_level2 column_namea column_nameb 0 0.1 1 1 0.2 2 2 0.3 3
or get_level_values
isin
:
print df.loc[:, df.columns.get_level_values('column_level1') .isin(['column_name1','column_name2'])] column_level1 column_name1 column_name2 column_level2 column_namea column_nameb 0 0.1 1 1 0.2 2 2 0.3 3
Comments
Post a Comment