Pandas DataFrame boxplot() Method
A boxplot
often called a box and plot that displays the five-number summary of a DataFrame. The five-number summaries are the minimum value of the dataset, first quartile that is 25% of the dataset, median that is 50% of the dataset, third quartile that is 75% of the dataset, and the maximum value of the dataset. A box plot is a method for graphically depicting groups of numerical data through their quartiles.
In this tutorial, we will learn the python pandas DataFrame.boxplot() method that makes a box plot from DataFrame columns.
The below shows the syntax of the DataFrame.boxplot()
method.
Syntax
DataFrame.boxplot(column=None, by=None, ax=None, fontsize=None, rot=0, grid=True, figsize=None, layout=None, return_type=None, backend=None, **kwargs)
Parameters:
column: str or list of str, optional. Column name or list of names, or vector.
by: str or array-like, optional. A column in the DataFrame to pandas.DataFrame.groupby()
. One box-plot will be done per value of columns in by.
fontsize: float or str. Tick label font size in points or as a string (e.g., large).
rot: int or float, default 0. The rotation angle of labels (in degrees) with respect to the screen coordinate system.
grid: bool, default True. Setting this to True will show the grid.
layout: tuple (rows, columns), optional. For example, (3, 5) will display the subplots using 3 columns and 5 rows, starting from the top-left.
return_type: {‘axes’, ‘dict’, ‘both’} or None, default ‘axes’. The kind of object to return. The default is axes
.
Example 1: Creating boxplot with DataFrame.boxplot()
Method
Consider a simple example of how the DataFrame.boxplot()
method works. Create a DataFrame and generate the boxplot by passing the name of the DataFrame column to the DataFrame.boxplot()
method.
import pandas as pd
df = pd.DataFrame([['Abhishek',75,80,90], ['Anurag',80,90,95],['Bavya',80,82,85],['Bavana',95,92,92],['Chetan',85,90,89]], columns=['Name','Maths','Science','Social'])
print(df)
boxplot=df.boxplot(column=['Social'])
print(df['Social'].quantile([0.25,0.5,0.75]))
print(boxplot)
Once we run the program we will get the following output.
![](data:image/png;base64,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nA05EEglgLhIJdVSObk6sXHjRnH00UeLk046SUiRcfXVV4v99ttP3HzzzeLOO+8U//7v/y5uueUWsW7dOrGwsCBWr16tyqWYgLhIoUQZCMQJIC7ibMiBQCoBxEUqqZbKycseUkAccsgh4rLLLhNvv/22ePHFF8WRRx4pLrjgArFhwwbxzDPPiHfeeUe1eM0114jjjz9enHvuuUkWIC6SMFEIAlECiIsoGjIgkEwAcZGMqp2CUlzIFYkvf/nLYnFxUbz11ltKXBxzzDFC/t12221OQ3JV48QTTxQXXnihkx7bQFzEyJAOgTQCiIs0TpSCQBMBxEUTnTHkyZWKxx9/XF0GWbNmjXjsscfE/fffLz71qU+JvfbaS1x33XWqVXkD56uvviq+8Y1viOOOO06tdoTMkeVef/11JVDkjaFSjOy0007i6aefVjeHSjHDHwxyGwO/e/UN8dzLW8SzU/hbuPZB8fmL7ppK27LPz/9hi9jCccu8lfkYOO+888Thhx8eClszkTY3jV5KgXHVVVeJgw8+WOyyyy5ifn5e7LPPPuJLX/qSuP7665VJUlhcdNFFYtWqVeLyyy9XB1rIViksrrzySlVO1rXddtuJbbbZRlx77bVKkMhLMPzBILcxcOCF68QHT71F/M2ayf+99xs3iPcce91U2v67U24RnzzrVnHDujs4bpm7sh4D8qQYcRGK2mNOk6sMcsVCXsaQN29KR5x88snijjvuEM8//7z4yU9+IvbYYw9x6aWXql+RxMwxN4jec889qq5zzjlHrFixQjz88MNC/oyVPxjkOAb2vvBO8eXv3yduefDZif8t3vaAuOj6uyferuzrmTc9IrZduEk89OQzHLvMX1mPgbPOOgtxEQvc40yXz7l488031T0XTz75pFq5uOSSS8R9992nVi8OOuggccYZZ4hHH31UPf8i1RbuuUglRbkuE/jCpfcIee/DNP498cQT4oEHHphG00rQyNUaeTmIfxDImQD3XEzJe3Kl4aabblI/MZWXPfbcc09x++23q5s95eWRD3zgA+KKK65Qqxp33323kBNeyj/ERQolynSdAOICcdH1MYp9zQQQF818xpYrb+bceeed1UO0Pv3pT6sbOeVPUuV9Fttuu63467/+a/UQrR133FEJD3l5JOUf4iKFEmW6TgBxgbjo+hjFvmYCiItmPmPLffnll9Vjv+Xjv+U9FvIyiXy2hbyR89lnn1V/8r4M+SdFh0xP+Ye4SKFEma4TQFwgLro+RrGvmQDioplPdrmIi+xchsEBAogLxEVgWJCUEQHERUbOSjEVcZFCiTJdJ4C4QFx0fYxiXzMBxEUzn+xyERfZuQyDAwQQF4iLwLAgKSMCiIuMnJViKuIihRJluk4AcYG46PoYxb5mAoiLZj7Z5SIusnMZBgcIIC4QF4FhQVJGBBAXGTkrxVTERQolynSdAOICcdH1MYp9zQQQF818sstFXGTnMgwOEEBcIC4Cw4KkjAggLjJyVoqpiIsUSpTpOgHEBeKi62MU+5oJIC6a+WSXi7jIzmUYHCCAuEBcBIYFSRkRQFxk5KwUUxEXKZQo03UCiAvERdfHKPY1E0BcNPPJLhdxkZ3LMDhAAHGBuAgMC5IyIoC4yMhZKaYiLlIoUabrBBAXiIuuj1HsayaAuGjmk10u4iI7l2FwgADiAnERGBYkZUQAcZGRs1JMRVykUKJM1wkgLhAXXR+j2NdMAHHRzCe7XMRFdi7D4AABxAXiIjAsSMqIAOIiI2elmIq4SKFEma4TQFwgLro+RrGvmQDioplPdrmIi+xchsEBAogLxEVgWJCUEQHERUbOSjEVcZFCiTJdJ4C4QFx0fYxiXzMBxEUzn+xyERfZuQyDAwQQF4iLwLAgKSMCiIuMnJViKuIihRJluk4AcYG46PoYxb5mAoiLZj7Z5SIusnMZBgcIIC4QF4FhQVJGBBAXGTkrxVTERQolynSdAOICcdH1MYp9zQQQF818sstFXGTnMgwOEEBcIC4Cw4KkjAggLjJyVoqpiIsUSpTpOgHEBeKi62MU+5oJIC6a+WSXi7jIzmUYHCCAuEBcBIYFSRkRQFxk5KwUUxEXKZQo03UCiAvERdfHKPY1E0BcNPPJLhdxkZ3LMDhAAHGBuAgMC5IyIoC4yMhZKaYiLlIoUabrBBAXiIuuj1HsayaAuGjmk10u4iI7l2FwgADiAnERGBYkZUQAcZGRs1JMRVykUKJM1wkgLhAXXR+j2NdMAHHRzCe7XMRFdi7D4AABxAXiIjAsSMqIAOIiI2elmIq4SKFEma4TQFwgLro+RrGvmQDioplPdrmIi+xchsEBAogLxEVgWJCUEQHERUbOSjEVcZFCiTJdJ4C4QFx0fYxiXzMBxEUzn+xyERfZuQyDAwQQF4iLwLAgKSMCiIuMnJViKuIihRJluk4AcYG46PoYxb5mAoiLZj7Z5SIusnMZBgcIIC4QF4FhQVJGBBAXGTkrxVTERQolynSdAOICcdH1MYp9zQQQF818xpa7ZcsW8fvf/14899xzYvPmzeKVV14RW7duFe+++6544403xAsvvKDynn/+efHaa6+p9BRjEBcplCjTdQKIC8RF18co9jUTQFw08xlb7o033igOO+ww8eEPf1h8/OMfF2effbZ46qmnhBQd69evF//0T/8kPvShD4lPfepT4oorrhCvvvpqki2IiyRMFOo4AcQF4qLjQxTzBhBAXAwA1Ha2XJ3YuHGjOProo8VJJ50kpMi4+uqrxX777SduvvlmsW7dOnHmmWeKY445Rlx33XXi9NNPF6eccoq44YYbkkxBXCRholDHCSAuEBcdH6KYN4AA4mIAoLaz5SWPO++8UxxyyCHisssuE2+//bZ48cUXxZFHHikuuOACceKJJ4pDDz1U/OxnP1OXR+69916xevVqcfLJJyeZgrhIwkShjhNAXCAuOj5EMW8AAcTFAEBtZ0txIVcnvvzlL4vFxUXx1ltvKXEhVyrk36c//Wmx5557qvsx3nnnHXUvhly5WLVqVdAUsxJyzz33CCkszjnnHLFixQrx8MMPq/s25L0b/MEgtzGw9xU/EEdcsyhu+81tE//74b0/FJfefunE25V9/fbSVWLbM88VDz31G45b5q6sx8BZZ50lDj/88GDcmoXEuUl3Uq5UPP744+oyyJo1a8Rjjz0m7r//fnVvxV577aWEwW677eaYdeqpp4rdd9/dSTMbr7/+urjyyiuV+Nhll13EdtttJ7bZZhtx7bXXqhUSuUrCHwxyGwOf+8F+4m+uWCE+8qOPTPxvxdoV4kOLH5p4u7KvH1zcXmx36S7iuvXXc9wyd2U9Bo477jjEhQnUk/qUAuOqq64SBx98sJCCYH5+Xuyzzz7iS1/6kth+++3FMOJC/rpECgx5aUX+6kTev7HTTjuJp59+Wl1WkSsl/MEgtzGw72XrxJob7hKbX9s88b9fPPILsf4X6yferuzrlff/r/ib0/5TbHzhJY5b5q6sx8B5552HuJiUqLDbkUJArljISxm33HKLkCpP3lchfyUyzGURu075nXsufCJs50iAey645yLHcYvNFQHuuahYTPSb/Mnpm2++qe65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)
Example 2: Creating a boxplot with DataFrame.boxplot()
method by grouping data from the column values
This example is similar to the previous one but first, it will group the DataFrame into different groups according to the by='DOB'
parameter and then creates a boxplot for each DataFrame
.
import pandas as pd
df = pd.DataFrame([['Abhishek','13/6/1995',100,90], ['Anurag','13/6/1995',101,95],['Bavya','19/5/1995',102,92],['Bavana','23/10/2003',103,90],['Chetan','23/10/2003',104,89],['Chirag','19/5/1995',105,100]], columns=['Name','DOB','Roll No','Marks'])
print(df)
print(df['Marks'].quantile([0.25,0.5,0.75]))
boxplot=df.boxplot(column=['Marks'],by='DOB')
print(boxplot)
once we run the program we will get the following output.
![](https://lh4.googleusercontent.com/N_ipXAxAva6u_c6FXKmXg7EKVQd7WbtLlA5yMEg4_dfDCnRG_3Dh_MKlCqBH-H5KTYWcVLCLwEFQFrNC6Uo82eo4bZ1QbdADsau9moljW5h_MPSvy4coRoBeVVj0VXqsyOq6fl0q)
Example 3: The DataFrame.boxplot() method by customizing the boxplot using fontsize, rot, and grid parameters
We can customize the boxplot using fontsize, rot and grid parameters and the below example shows the same.
import pandas as pd
df = pd.DataFrame([['Abhishek','13/6/1995',100,90], ['Anurag','13/6/1995',101,95],['Bavya','19/5/1995',102,92],['Bavana','23/10/2003',103,90],['Chetan','23/10/2003',104,89],['Chirag','19/5/1995',105,100]], columns=['Name','DOB','Roll No','Marks'])
print(df)
print(df['Marks'].quantile([0.25,0.5,0.75]))
boxplot=df.boxplot(column=['Marks'],by='DOB',grid=False, rot=20, fontsize=10)
print(boxplot)
once we run the program we will get the following output.
![](https://lh5.googleusercontent.com/jPoHA0Yafa9VkvIQbgaQfe7T2qhbQW8WZqZ1_gmWuxpb-ZedvSHIbXc_vqPwzMVcm9u-GD0-BMImrzG6JNl_v_HxKXm0-VNZqqKIW7GoU_dTpd3XFNKl2ULd574tEsEqRxyUAsKJ)
Example 4: The DataFrame.boxplot() method by customizing the layout Parameter
We can customize the boxplot using the layout parameter and the below example shows the same. It will display the subplots using 3 columns and 1 row.
import pandas as pd
df = pd.DataFrame([['Abhishek','13/6/1995',100,90], ['Anurag','13/6/1995',101,95],['Bavya','19/5/1995',102,92],['Bavana','23/10/2003',103,90],['Chetan','23/10/2003',104,89],['Chirag','19/5/1995',105,100]], columns=['Name','DOB','Roll No','Marks'])
print(df)
boxplot=df.boxplot(column=['Marks'],by='DOB',layout=(3,1))
print(boxplot)
once we run the program we will get the following output.
![](https://lh4.googleusercontent.com/MyJnYAeSy49NkpJ_W-t3VXV7Nu6cyxn3PlNQnS57oPJeqRJtmHVVrh4FsUjvRphBctETEapj0RRxkcauowu_zEm0_BCKorh3y7L-P0tkbVUEw0Zk4zHMNRRatg-fuQwnR3JgqNAc)
Conclusion
In this tutorial, we learned the python pandas DataFrame.boxplot() method to the DataFrame. We learned syntax, parameters, and passing different methods to the DataFrame.boxplot() method, we solved examples and understood the method.