# summary_cat()¶

Returns a data table as a Pandas DataFrame that includes the counts and percentages of each category. If there are missing data present (numpy.nan), they will be excluded from the counts. However, if the missing data is coded as a string, it will be included as it’s own category.

## Arguments¶

**summary_cat(group1, ascending= False)**

group1, can be a Pandas Series or DataFrame with multiple columns stated

ascending, determines the output ascending order or not. Default isdescending.

**returns**

Pandas DataFrame

## Examples¶

```
import numpy, pandas, researchpy
numpy.random.seed(123)
df = pandas.DataFrame(numpy.random.randint(2, size= (101, 2)),
columns= ['disease', 'treatment'])
```

```
# Handles a single Pandas Series
researchpy.summary_cat(df['disease'])
```

Variable | Outcome | Count | Percent | |
---|---|---|---|---|

0 | disease | 0 | 53 | 52.48 |

1 | 1 | 48 | 47.52 |

```
# Can handle multiple Series, although the output is not pretty
researchpy.summary_cat(df[['disease', 'treatment']])
```

Variable | Outcome | Count | Percent | |
---|---|---|---|---|

0 | disease | 0 | 53 | 52.48 |

1 | 1 | 48 | 47.52 | |

2 | treatment | 1 | 52 | 51.49 |

3 | 0 | 49 | 48.51 |

```
# If missing is a string, it will show up as it's own category
df['disease'][0] = ""
researchpy.summary_cat(df['disease'])
```

Variable | Outcome | Count | Percent | |
---|---|---|---|---|

0 | disease | 0 | 52 | 51.49 |

1 | 1 | 48 | 47.52 | |

2 | 1 | 0.99 |

```
# However, is missing is a numpy.nan, it will be excluded from the counts
df['disease'][0] = numpy.nan
researchpy.summary_cat(df['disease'])
```

Variable | Outcome | Count | Percent | |
---|---|---|---|---|

0 | disease | 0 | 52 | 52.0 |

1 | 1 | 48 | 48.0 |

```
# Results can easily be exported using many methods including the default
# Pandas exporting methods
results = researchpy.summary_cat(df['disease'])
results.to_csv("summary_cats.csv", index= False)
```

```
# This is the default, showing for comparison of immediately below
researchpy.summary_cat(df['disease'], ascending= False)
```

Variable | Outcome | Count | Percent | |
---|---|---|---|---|

0 | disease | 0 | 52 | 52.0 |

1 | 1 | 48 | 48.0 |

```
researchpy.summary_cat(df['disease'], ascending= True)
```

Variable | Outcome | Count | Percent | |
---|---|---|---|---|

0 | disease | 1 | 48 | 48.0 |

1 | 0 | 52 | 52.0 |