# Calculating Series Mean Grouped by Another Series

This thread will cover methods of how you can calculate the mean of one series grouped by another series, this technique is useful as there are times when you group data by some categories and find it useful to calculate the mean with respect to other groups. We will discuss different techniques that can be used to calculate the mean, including the use of Pandas and NumPy libraries, and if you want to learn different techniques related to series, go through the following threads listed below:

#### 1. Using "groupby()" method:

• The `pd.groupby()` method in Pandas is a powerful function for grouping data based on one or more columns of a DataFrame and allowing to aggregate of the results.
• In the example code below, we group a series `values` by another series `fruits`, and then we find the mean of this grouped data using the `mean()` function.

#### 2. Using NumPy library:

• In this example code, we have used a dictionary comprehension along with NumPy’s `np.unique()` function.
• For every unique value in the series `fruits`, we have created a boolean mask using `fruits == key` and fetched values for that unique value. The mean is calculated on the fetched values (`values[fruits == key]`) using the `mean()` function.

#### 3. Using "pd.pivot_table()" method:

• The `pd.pivot_table()` method is used for creating a spreadsheet-style pivot table based on a Pandas DataFrame. It allows you to summarize and aggregate data based on one or more columns, and then display the results in a tabular format.
• In this method, we have grouped the table by `fruits` series by specifying the `index` argument, and found the mean of the `values` series which is specified in the `values` argument.

#### 4. Using "pd.crosstab()" method:

• The `pd.crosstab()` method is used for creating a cross-tabulation (or contingency table) based on two or more columns of a DataFrame. It allows you to count the number of occurrences of each combination of values in the columns, and then display the results in a tabular format.
• The `index` argument is the column to be used as the row index, the `columns` argument is the column to be used as the column index, `values` is the column to be aggregated (optional), and `aggfunc` is the aggregation function to be applied.
• Since we only have two series in our dataframe, we have used `fruits` in both `index` and `columns` arguments.

#### 5. Using list comprehension method:

• In this method, we iterate through all the unique values of series `fruits` using the `unique()` function to get unique values.
• Then, for each unique value, we get all values from series `values` using a boolean condition `df['fruits'] == group` and find their mean using the `mean()` function.