Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting each element in Pandas crosstab

I have a dataset given below:

a,b,c
1,1,1
1,1,1
1,1,2
2,1,2
2,1,1
2,2,1

I created crosstab with pandas:

 cross_tab = pd.crosstab(index=a, columns=[b, c], rownames=['a'], colnames=['b', 'c'])

my crosstab is given as an output:

b        1     2
c        1  2  1
a        
1        2  1  0
2        1  1  1

I want to iterate over this crosstab for given each a,b and c values. How can I get values such as cross_tab[a=1][b=1, c=1]? Thank you.

like image 606
user3104352 Avatar asked Oct 19 '25 10:10

user3104352


1 Answers

You are looking for df2.xxx.get_level_values:

In [777]: cross_tab.loc[cross_tab.index.get_level_values('a') == 1,\
                        (cross_tab.columns.get_level_values('b') == 1)\
                      & (cross_tab.columns.get_level_values('c') == 1)]
Out[777]: 
b  1
c  1
a   
1  2
like image 89
cs95 Avatar answered Oct 21 '25 23:10

cs95



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!