pandas.crosstab¶
- pandas.crosstab(index, columns, values=None, rownames=None, colnames=None, aggfunc=None, margins=False, dropna=True)¶
- Compute a simple cross-tabulation of two (or more) factors. By default computes a frequency table of the factors unless an array of values and an aggregation function are passed - Parameters: - index : array-like, Series, or list of arrays/Series - Values to group by in the rows - columns : array-like, Series, or list of arrays/Series - Values to group by in the columns - values : array-like, optional - Array of values to aggregate according to the factors - aggfunc : function, optional - If no values array is passed, computes a frequency table - rownames : sequence, default None - If passed, must match number of row arrays passed - colnames : sequence, default None - If passed, must match number of column arrays passed - margins : boolean, default False - Add row/column margins (subtotals) - dropna : boolean, default True - Do not include columns whose entries are all NaN - Returns: - crosstab : DataFrame - Notes - Any Series passed will have their name attributes used unless row or column names for the cross-tabulation are specified - Examples - >>> a array([foo, foo, foo, foo, bar, bar, bar, bar, foo, foo, foo], dtype=object) >>> b array([one, one, one, two, one, one, one, two, two, two, one], dtype=object) >>> c array([dull, dull, shiny, dull, dull, shiny, shiny, dull, shiny, shiny, shiny], dtype=object) - >>> crosstab(a, [b, c], rownames=['a'], colnames=['b', 'c']) b one two c dull shiny dull shiny a bar 1 2 1 0 foo 2 2 1 2