简体   繁体   中英

I want to add new column into cross tabulation data

I have cross tabulation data something. which i have created using

x = pd.crosstab(a['Age Category'], a['Category'])

| Category     | A | B  | C  | D |
|--------------|---|----|----|---|
| Age Category |   |    |    |   |
| 21-26        | 2 | 2  | 4  | 1 |
| 26-31        | 7 | 11 | 12 | 5 |
| 31-36        | 3 | 5  | 5  | 2 |
| 36-41        | 2 | 4  | 1  | 7 |
| 41-46        | 0 | 1  | 3  | 2 |
| 46-51        | 0 | 0  | 2  | 3 |
| Above 51     | 0 | 3  | 0  | 6 |

And I want to add new column Total which will contain row sum something like this in cross tabulation data.


| Category     | A | B  | C  | D | Total |
|--------------|---|----|----|---|-------|
| Age Category |   |    |    |   |       |
| 21-26        | 2 | 2  | 4  | 1 | 9     |
| 26-31        | 7 | 11 | 12 | 5 | 35    |
| 31-36        | 3 | 5  | 5  | 2 | 15    |
| 36-41        | 2 | 4  | 1  | 7 | 14    |
| 41-46        | 0 | 1  | 3  | 2 | 6     |
| 46-51        | 0 | 0  | 2  | 3 | 5     |
| Above 51     | 0 | 3  | 0  | 6 | 9     |

I tried x['Total'] = x.sum(axis = 1) but this code is giving me TypeError: cannot insert an item into a CategoricalIndex that is not already an existing category

Thanks you for your time and consideration.

Use CategoricalIndex.add_categories for append new category to columns:

x.columns = x.columns.add_categories(['Total'])
x['Total'] = x.sum(axis = 1)
print (x)
          A   B   C  D  Total
Category                     
21-26     2   2   4  1      9
26-31     7  11  12  5     35
31-36     3   5   5  2     15
36-41     2   4   1  7     14
41-46     0   1   3  2      6
46-51     0   0   2  3      5
Above 51  0   3   0  6      9

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM