From 9da276bdb87189d12f29b616acd2c97bf73e24ad Mon Sep 17 00:00:00 2001 From: pripky Date: Wed, 21 May 2025 00:46:48 +0530 Subject: [PATCH] Add files via upload --- week_0/Assignment0_240221.ipynb | 1 + 1 file changed, 1 insertion(+) create mode 100644 week_0/Assignment0_240221.ipynb diff --git a/week_0/Assignment0_240221.ipynb b/week_0/Assignment0_240221.ipynb new file mode 100644 index 0000000..a1c3cc9 --- /dev/null +++ b/week_0/Assignment0_240221.ipynb @@ -0,0 +1 @@ +{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[{"file_id":"1YgPf9zkamM4bbNegXvz6U2YYGBnC4S8M","timestamp":1747762422328},{"file_id":"1J3mlnYYfweg_e36Une3NROxSom3H-6dS","timestamp":1747335117311}]},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","source":["# Assignment 0\n","**Instrunctions for the assignment** \\\\\n","\n","* Open Google Colab: Begin by launching Google Colab and creating a new Python notebook.\n","* Read Comments Carefully: Pay close attention to the comments provided within the codeblocks.\n","\n","\n","* Code Block Completion: Fill in the codeblocks as per the instructions given in the comments.\n","* Avoid Copying: Ensure that you understand the concepts and refrain from directly copying code from external sources.\n","\n","\n","* Execute Codeblocks: Verify that each codeblock runs without errors by executing them.\n","* Save and Submit: Once you've completed the assignment, save your notebook and follow the submission guidelines provided by your instructor.\n","\n","\n","\n","\n","\n","\n","\n","\n","\n","\n","**Notes:**\n","\n","Encouragement: Take your time to understand the concepts behind each codeblock. This assignment aims to strengthen your Python programming skills. \\\\\n","Good Luck! : If you have any questions or require clarification on any aspect of the instructions, feel free to ask. \\\\\n"," \\\\\n","\n","Best wishes for your assignment! These instructions are crafted to provide clarity and guidance as you work through the tasks in Google Colab.\n","\n","\n","\n","\n","\n","\n","\n"],"metadata":{"id":"U2p472EZsFQh"}},{"cell_type":"markdown","source":["## Getting Started\n","Solving these exercises will help make you a better programmer. Solve them in order, because each solution builds scaffolding, working code, and knowledge you can use on future problems. Read the directions carefully, and have fun!\n","\n","\n","\n","* To save your work to your Google Drive, go to File then \"Save Copy in Drive\".\n","* Your own work will now appear in your Google Drive account!\n","* Work on this copy as directed"],"metadata":{"id":"jGDFomGq3i87"}},{"cell_type":"markdown","source":["## What to do when you don't know what to do next\n","- When the exercise asks you to reverse an list, the way forward is to search for \"How to reverse a list in Python\" in your favorite search engine.\n","- When the exercise asks you to check if a number is even, the way forward is to search for \"how to check if a number is even in Python\".\n","- When the exercise has you calculate the area of a circle, the way forward is to search for \"how to calculate the area of a circle in Python\" or \"How to get pi in Python\".\n","\n","😀😀"],"metadata":{"id":"jZ1hWiMO4TTN"}},{"cell_type":"markdown","source":["## Basic Python Exercises"],"metadata":{"id":"LKjbv4-Mmp3_"}},{"cell_type":"markdown","source":["1. Create a new list from two list \\\\\n","list1 = [10, 20, 25, 30, 35] \\\\\n","list2 = [40, 45, 60, 75, 90]"],"metadata":{"id":"POUIXeAkoAJy"}},{"cell_type":"code","source":["list1 = [10, 20, 25, 30, 35]\n","list2 = [40, 45, 60, 75, 90]\n","list3 = list1 + list2\n","list3.sort()\n","print(list3)"],"metadata":{"id":"083WsOfvmz3k","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1747763444254,"user_tz":-330,"elapsed":60,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"9d2df773-9021-4919-bb30-ff66225b4ab9"},"execution_count":15,"outputs":[{"output_type":"stream","name":"stdout","text":["[10, 20, 25, 30, 35, 40, 45, 60, 75, 90]\n"]}]},{"cell_type":"markdown","source":["2. Print multiplication table from 1 to 10"],"metadata":{"id":"mBuOTb3vo7SY"}},{"cell_type":"code","source":["for y in range (1,11):\n"," print(\"\\n\")\n"," for x in range (1,11):\n"," print(y,\"X\",x,\"=\",y*x)"],"metadata":{"id":"ALdwhW6uqRTB","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1747763055535,"user_tz":-330,"elapsed":57,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"9355aab5-8eda-46c7-b8c8-9d63b5e87df8"},"execution_count":6,"outputs":[{"output_type":"stream","name":"stdout","text":["\n","\n","1 X 1 = 1\n","1 X 2 = 2\n","1 X 3 = 3\n","1 X 4 = 4\n","1 X 5 = 5\n","1 X 6 = 6\n","1 X 7 = 7\n","1 X 8 = 8\n","1 X 9 = 9\n","1 X 10 = 10\n","\n","\n","2 X 1 = 2\n","2 X 2 = 4\n","2 X 3 = 6\n","2 X 4 = 8\n","2 X 5 = 10\n","2 X 6 = 12\n","2 X 7 = 14\n","2 X 8 = 16\n","2 X 9 = 18\n","2 X 10 = 20\n","\n","\n","3 X 1 = 3\n","3 X 2 = 6\n","3 X 3 = 9\n","3 X 4 = 12\n","3 X 5 = 15\n","3 X 6 = 18\n","3 X 7 = 21\n","3 X 8 = 24\n","3 X 9 = 27\n","3 X 10 = 30\n","\n","\n","4 X 1 = 4\n","4 X 2 = 8\n","4 X 3 = 12\n","4 X 4 = 16\n","4 X 5 = 20\n","4 X 6 = 24\n","4 X 7 = 28\n","4 X 8 = 32\n","4 X 9 = 36\n","4 X 10 = 40\n","\n","\n","5 X 1 = 5\n","5 X 2 = 10\n","5 X 3 = 15\n","5 X 4 = 20\n","5 X 5 = 25\n","5 X 6 = 30\n","5 X 7 = 35\n","5 X 8 = 40\n","5 X 9 = 45\n","5 X 10 = 50\n","\n","\n","6 X 1 = 6\n","6 X 2 = 12\n","6 X 3 = 18\n","6 X 4 = 24\n","6 X 5 = 30\n","6 X 6 = 36\n","6 X 7 = 42\n","6 X 8 = 48\n","6 X 9 = 54\n","6 X 10 = 60\n","\n","\n","7 X 1 = 7\n","7 X 2 = 14\n","7 X 3 = 21\n","7 X 4 = 28\n","7 X 5 = 35\n","7 X 6 = 42\n","7 X 7 = 49\n","7 X 8 = 56\n","7 X 9 = 63\n","7 X 10 = 70\n","\n","\n","8 X 1 = 8\n","8 X 2 = 16\n","8 X 3 = 24\n","8 X 4 = 32\n","8 X 5 = 40\n","8 X 6 = 48\n","8 X 7 = 56\n","8 X 8 = 64\n","8 X 9 = 72\n","8 X 10 = 80\n","\n","\n","9 X 1 = 9\n","9 X 2 = 18\n","9 X 3 = 27\n","9 X 4 = 36\n","9 X 5 = 45\n","9 X 6 = 54\n","9 X 7 = 63\n","9 X 8 = 72\n","9 X 9 = 81\n","9 X 10 = 90\n","\n","\n","10 X 1 = 10\n","10 X 2 = 20\n","10 X 3 = 30\n","10 X 4 = 40\n","10 X 5 = 50\n","10 X 6 = 60\n","10 X 7 = 70\n","10 X 8 = 80\n","10 X 9 = 90\n","10 X 10 = 100\n"]}]},{"cell_type":"markdown","source":["3. Print a downward Half-Pyramid Pattern\n","\n","0 0 0 0 0 \n","0 0 0 0
\n","0 0 0
\n","0 0
\n","0"],"metadata":{"id":"rXhutUXXqR5x"}},{"cell_type":"code","source":["for x in range (0,5):\n"," print(\"0\"*(5-x))"],"metadata":{"id":"U9j7N1nrtw--","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1747763575758,"user_tz":-330,"elapsed":10,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"aa0a0a1b-2b86-4743-eb88-9474260220e3"},"execution_count":18,"outputs":[{"output_type":"stream","name":"stdout","text":["00000\n","0000\n","000\n","00\n","0\n"]}]},{"cell_type":"markdown","source":[" 4. Given the following assignment of the vegetables list, add \"tomato\" to the end of the list and sort them in alphabetical order.\\\n","vegetables = [\"eggplant\", \"broccoli\", \"carrot\",\"cauliflower\", \"zucchini\"]"],"metadata":{"id":"Re-QzSX4ugH-"}},{"cell_type":"code","source":["vegetables = [\"eggplant\", \"broccoli\", \"carrot\",\"cauliflower\", \"zucchini\"]\n","vegetables.append(\"tomato\")\n","vegetables.sort()\n","print(vegetables)"],"metadata":{"id":"hnA-2EIDuxEH","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1747763421608,"user_tz":-330,"elapsed":20,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"8c5143fa-226c-4f9b-bebb-bcc8b2429568"},"execution_count":14,"outputs":[{"output_type":"stream","name":"stdout","text":["['broccoli', 'carrot', 'cauliflower', 'eggplant', 'tomato', 'zucchini']\n"]}]},{"cell_type":"markdown","source":["5. Write a function definition named is_odd that takes in a number and returns True or False if that number is odd."],"metadata":{"id":"ARyaOlp8uxix"}},{"cell_type":"code","source":["num=input(\"Enter a number:\")\n","num_int=int(num)\n","def is_odd(number):\n"," if number % 2 == 0:\n"," return False\n"," else:\n"," return True\n","\n","is_odd(num_int)"],"metadata":{"id":"OztCSuVjvACz","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1747764172759,"user_tz":-330,"elapsed":2680,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"6e48fadc-589d-4881-d23d-cf3a7314fe57"},"execution_count":23,"outputs":[{"name":"stdout","output_type":"stream","text":["Enter a number:4\n"]},{"output_type":"execute_result","data":{"text/plain":["False"]},"metadata":{},"execution_count":23}]},{"cell_type":"markdown","source":["6. Write a function definition named mode that takes in sequence of numbers and returns the most commonly occuring value"],"metadata":{"id":"GIAo6YfLu_AJ"}},{"cell_type":"code","source":["def mode(sequence):\n"," for num in sequence:\n"," count = sequence.count(num)\n"," most_frequent = max(sequence, key=sequence.count)\n"," return most_frequent\n","\n","numbers = input(\"Enter a sequence of numbers:\")\n","sequence_num=numbers.split()\n","numbers = [int(x) for x in sequence_num]\n","mode(numbers)"],"metadata":{"id":"WEikC1aTvXoS","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1747764576558,"user_tz":-330,"elapsed":10169,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"e8eebc30-7de8-4f1f-ab64-ccaa7bd25504"},"execution_count":29,"outputs":[{"name":"stdout","output_type":"stream","text":["Enter a sequence of numbers:6 6 7 8 5 4 3 5 3 6 \n"]},{"output_type":"execute_result","data":{"text/plain":["6"]},"metadata":{},"execution_count":29}]},{"cell_type":"markdown","source":["## Numpy Exercises"],"metadata":{"id":"AKuHwB0lvZn-"}},{"cell_type":"markdown","source":["Exercise 1: Create a 4X2 integer array and Prints its attributes \\\\\n","**Note:** The element must be a type of unsigned int16. \\\\\n","And print the following Attributes: –\n","\n","\n","\n","1. The shape of an array.\n","2. Array dimensions.\n","3. The Length of each element of the array in bytes.\n","\n","\n","\n","\n","\n"],"metadata":{"id":"8f2ww678vf5S"}},{"cell_type":"code","source":["import numpy as np\n","array = np.array([[3, 5, 6, 7],[8, 7, 8, 7]], dtype=np.uint16)\n","print(array.shape)\n","print(array.ndim)\n","print(array.itemsize)"],"metadata":{"id":"2YMq_rbcwTeb","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1747765021000,"user_tz":-330,"elapsed":25,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"f29e67d3-d9ef-4139-9726-144518c76fad"},"execution_count":36,"outputs":[{"output_type":"stream","name":"stdout","text":["(2, 4)\n","2\n","2\n"]}]},{"cell_type":"markdown","source":["Exercise 2: Following is the provided numPy array. Return array of items by taking the third column from all rows \\\\\n","sampleArray = numpy.array ( [ [ 11 ,22, 33 ], [ 44, 55, 66 ], [ 77, 88, 99 ] ] )"],"metadata":{"id":"jLVSC8epw0Wz"}},{"cell_type":"code","source":["sampleArray = np.array ( [ [ 11 ,22, 33 ], [ 44, 55, 66 ], [ 77, 88, 99 ] ] )\n","print(sampleArray[:,2])"],"metadata":{"id":"UVRODBc1wyjl","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1747765138264,"user_tz":-330,"elapsed":24,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"60a4c10e-63c1-45d8-f2a6-6680bac1d05b"},"execution_count":37,"outputs":[{"output_type":"stream","name":"stdout","text":["[33 66 99]\n"]}]},{"cell_type":"markdown","source":["Exercise 3: Sort following NumPy array \\\\\n","Case 1: Sort array by the second row \\\\\n","Case 2: Sort the array by the second column"],"metadata":{"id":"T72G3kpRxESl"}},{"cell_type":"code","source":["a = np.array ( [ [ 1 ,5, 8 ], [ 9, 3, 2 ], [ 7, 6, 4 ] ] )\n","sorted1 = a[:, a[1].argsort()]\n","sorted2 = a[a[:, 1].argsort()]\n","print(a,\"\\n\")\n","print(sorted1,\"\\n\")\n","print(sorted2,\"\\n\")"],"metadata":{"id":"kdPN_yoaxULi","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1747766422306,"user_tz":-330,"elapsed":19,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"91f168ef-9e02-40b3-aef6-7b25b8f86ab6"},"execution_count":58,"outputs":[{"output_type":"stream","name":"stdout","text":["[[1 5 8]\n"," [9 3 2]\n"," [7 6 4]] \n","\n","[[8 5 1]\n"," [2 3 9]\n"," [4 6 7]] \n","\n","[[9 3 2]\n"," [1 5 8]\n"," [7 6 4]] \n","\n"]}]},{"cell_type":"markdown","source":["## Pandas Exercises\n","In this exercise, we are using Automobile Dataset for data analysis. This Dataset has different characteristics of an auto such as body-style, wheel-base, engine-type, price, mileage, horsepower, etc. \\\\\n","https://pynative.com/wp-content/uploads/2019/01/Automobile_data.csv"],"metadata":{"id":"RUiLxEnkxXKF"}},{"cell_type":"markdown","source":["Exercise 1: From the given dataset print the first and last five rows."],"metadata":{"id":"Bgvaffg70VqZ"}},{"cell_type":"code","source":["import pandas as pd\n","df = pd.read_csv(\"/content/Automobile_data.csv\")\n","df.head(5)\n","df.tail(5)"],"metadata":{"id":"RT2zrs5y2ZUB","colab":{"base_uri":"https://localhost:8080/","height":206},"executionInfo":{"status":"ok","timestamp":1747766980934,"user_tz":-330,"elapsed":76,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"c6299311-da8f-4ef1-f660-83a343f66cf2"},"execution_count":63,"outputs":[{"output_type":"execute_result","data":{"text/plain":[" index company body-style wheel-base length engine-type \\\n","56 81 volkswagen sedan 97.3 171.7 ohc \n","57 82 volkswagen sedan 97.3 171.7 ohc \n","58 86 volkswagen sedan 97.3 171.7 ohc \n","59 87 volvo sedan 104.3 188.8 ohc \n","60 88 volvo wagon 104.3 188.8 ohc \n","\n"," num-of-cylinders horsepower average-mileage price \n","56 four 85 27 7975.0 \n","57 four 52 37 7995.0 \n","58 four 100 26 9995.0 \n","59 four 114 23 12940.0 \n","60 four 114 23 13415.0 "],"text/html":["\n","
\n","
\n","\n","\n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n"," \n","
indexcompanybody-stylewheel-baselengthengine-typenum-of-cylindershorsepoweraverage-mileageprice
5681volkswagensedan97.3171.7ohcfour85277975.0
5782volkswagensedan97.3171.7ohcfour52377995.0
5886volkswagensedan97.3171.7ohcfour100269995.0
5987volvosedan104.3188.8ohcfour1142312940.0
6088volvowagon104.3188.8ohcfour1142313415.0
\n","
\n","
\n","\n","
\n"," \n","\n"," \n","\n"," \n","
\n","\n","\n","
\n"," \n","\n","\n","\n"," \n","
\n","\n","
\n","
\n"],"application/vnd.google.colaboratory.intrinsic+json":{"type":"dataframe","summary":"{\n \"name\": \"df\",\n \"rows\": 5,\n \"fields\": [\n {\n \"column\": \"index\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3,\n \"min\": 81,\n \"max\": 88,\n \"num_unique_values\": 5,\n \"samples\": [\n 82,\n 88,\n 86\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"company\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"volvo\",\n \"volkswagen\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"body-style\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"wagon\",\n \"sedan\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"wheel-base\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3.834057902536163,\n \"min\": 97.3,\n \"max\": 104.3,\n \"num_unique_values\": 2,\n \"samples\": [\n 104.3,\n 97.3\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"length\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 9.366055733338353,\n \"min\": 171.7,\n \"max\": 188.8,\n \"num_unique_values\": 2,\n \"samples\": [\n 188.8,\n 171.7\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"engine-type\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"ohc\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"num-of-cylinders\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"four\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"horsepower\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 25,\n \"min\": 52,\n \"max\": 114,\n \"num_unique_values\": 4,\n \"samples\": [\n 52\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"average-mileage\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 5,\n \"min\": 23,\n \"max\": 37,\n \"num_unique_values\": 4,\n \"samples\": [\n 37\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"price\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 2614.8623290720298,\n \"min\": 7975.0,\n \"max\": 13415.0,\n \"num_unique_values\": 5,\n \"samples\": [\n 7995.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"}},"metadata":{},"execution_count":63}]},{"cell_type":"markdown","source":["Exercise 2: Replace all column values which contain ?, n.a, or NaN with suitable values and print the updated dataset.:"],"metadata":{"id":"FB-hfiNh2Z42"}},{"cell_type":"code","source":["x = df[\"price\"].mean()\n","\n","df.fillna({\"price\": x}, inplace=True)\n","\n","print(df.to_string())"],"metadata":{"id":"n8u7K1cU2x4l","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1747767159538,"user_tz":-330,"elapsed":152,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"1def81dc-2c18-4617-c6fc-25193e72b9eb"},"execution_count":65,"outputs":[{"output_type":"stream","name":"stdout","text":[" index company body-style wheel-base length engine-type num-of-cylinders horsepower average-mileage price\n","0 0 alfa-romero convertible 88.6 168.8 dohc four 111 21 13495.0\n","1 1 alfa-romero convertible 88.6 168.8 dohc four 111 21 16500.0\n","2 2 alfa-romero hatchback 94.5 171.2 ohcv six 154 19 16500.0\n","3 3 audi sedan 99.8 176.6 ohc four 102 24 13950.0\n","4 4 audi sedan 99.4 176.6 ohc five 115 18 17450.0\n","5 5 audi sedan 99.8 177.3 ohc five 110 19 15250.0\n","6 6 audi wagon 105.8 192.7 ohc five 110 19 18920.0\n","7 9 bmw sedan 101.2 176.8 ohc four 101 23 16430.0\n","8 10 bmw sedan 101.2 176.8 ohc four 101 23 16925.0\n","9 11 bmw sedan 101.2 176.8 ohc six 121 21 20970.0\n","10 13 bmw sedan 103.5 189.0 ohc six 182 16 30760.0\n","11 14 bmw sedan 103.5 193.8 ohc six 182 16 41315.0\n","12 15 bmw sedan 110.0 197.0 ohc six 182 15 36880.0\n","13 16 chevrolet hatchback 88.4 141.1 l three 48 47 5151.0\n","14 17 chevrolet hatchback 94.5 155.9 ohc four 70 38 6295.0\n","15 18 chevrolet sedan 94.5 158.8 ohc four 70 38 6575.0\n","16 19 dodge hatchback 93.7 157.3 ohc four 68 31 6377.0\n","17 20 dodge hatchback 93.7 157.3 ohc four 68 31 6229.0\n","18 27 honda wagon 96.5 157.1 ohc four 76 30 7295.0\n","19 28 honda sedan 96.5 175.4 ohc four 101 24 12945.0\n","20 29 honda sedan 96.5 169.1 ohc four 100 25 10345.0\n","21 30 isuzu sedan 94.3 170.7 ohc four 78 24 6785.0\n","22 31 isuzu sedan 94.5 155.9 ohc four 70 38 15387.0\n","23 32 isuzu sedan 94.5 155.9 ohc four 70 38 15387.0\n","24 33 jaguar sedan 113.0 199.6 dohc six 176 15 32250.0\n","25 34 jaguar sedan 113.0 199.6 dohc six 176 15 35550.0\n","26 35 jaguar sedan 102.0 191.7 ohcv twelve 262 13 36000.0\n","27 36 mazda hatchback 93.1 159.1 ohc four 68 30 5195.0\n","28 37 mazda hatchback 93.1 159.1 ohc four 68 31 6095.0\n","29 38 mazda hatchback 93.1 159.1 ohc four 68 31 6795.0\n","30 39 mazda hatchback 95.3 169.0 rotor two 101 17 11845.0\n","31 43 mazda sedan 104.9 175.0 ohc four 72 31 18344.0\n","32 44 mercedes-benz sedan 110.0 190.9 ohc five 123 22 25552.0\n","33 45 mercedes-benz wagon 110.0 190.9 ohc five 123 22 28248.0\n","34 46 mercedes-benz sedan 120.9 208.1 ohcv eight 184 14 40960.0\n","35 47 mercedes-benz hardtop 112.0 199.2 ohcv eight 184 14 45400.0\n","36 49 mitsubishi hatchback 93.7 157.3 ohc four 68 37 5389.0\n","37 50 mitsubishi hatchback 93.7 157.3 ohc four 68 31 6189.0\n","38 51 mitsubishi sedan 96.3 172.4 ohc four 88 25 6989.0\n","39 52 mitsubishi sedan 96.3 172.4 ohc four 88 25 8189.0\n","40 53 nissan sedan 94.5 165.3 ohc four 55 45 7099.0\n","41 54 nissan sedan 94.5 165.3 ohc four 69 31 6649.0\n","42 55 nissan sedan 94.5 165.3 ohc four 69 31 6849.0\n","43 56 nissan wagon 94.5 170.2 ohc four 69 31 7349.0\n","44 57 nissan sedan 100.4 184.6 ohcv six 152 19 13499.0\n","45 61 porsche hardtop 89.5 168.9 ohcf six 207 17 34028.0\n","46 62 porsche convertible 89.5 168.9 ohcf six 207 17 37028.0\n","47 63 porsche hatchback 98.4 175.7 dohcv eight 288 17 15387.0\n","48 66 toyota hatchback 95.7 158.7 ohc four 62 35 5348.0\n","49 67 toyota hatchback 95.7 158.7 ohc four 62 31 6338.0\n","50 68 toyota hatchback 95.7 158.7 ohc four 62 31 6488.0\n","51 69 toyota wagon 95.7 169.7 ohc four 62 31 6918.0\n","52 70 toyota wagon 95.7 169.7 ohc four 62 27 7898.0\n","53 71 toyota wagon 95.7 169.7 ohc four 62 27 8778.0\n","54 79 toyota wagon 104.5 187.8 dohc six 156 19 15750.0\n","55 80 volkswagen sedan 97.3 171.7 ohc four 52 37 7775.0\n","56 81 volkswagen sedan 97.3 171.7 ohc four 85 27 7975.0\n","57 82 volkswagen sedan 97.3 171.7 ohc four 52 37 7995.0\n","58 86 volkswagen sedan 97.3 171.7 ohc four 100 26 9995.0\n","59 87 volvo sedan 104.3 188.8 ohc four 114 23 12940.0\n","60 88 volvo wagon 104.3 188.8 ohc four 114 23 13415.0\n"]}]},{"cell_type":"markdown","source":["Exercise 5: Count total cars per company and print them\n","\n","\n"],"metadata":{"id":"67ErI6He2wz6"}},{"cell_type":"code","source":["counts = df['company'].value_counts()\n","print(counts)"],"metadata":{"id":"8H6ytVXD26Ae","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1747767312693,"user_tz":-330,"elapsed":13,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"a5425b4f-26c9-4fb9-f80a-7a0ef649d039"},"execution_count":66,"outputs":[{"output_type":"stream","name":"stdout","text":["company\n","toyota 7\n","bmw 6\n","mazda 5\n","nissan 5\n","mercedes-benz 4\n","audi 4\n","volkswagen 4\n","mitsubishi 4\n","chevrolet 3\n","jaguar 3\n","isuzu 3\n","honda 3\n","porsche 3\n","alfa-romero 3\n","dodge 2\n","volvo 2\n","Name: count, dtype: int64\n"]}]},{"cell_type":"markdown","source":["## Matplotlib Exercises"],"metadata":{"id":"OcyPTwrWxdXt"}},{"cell_type":"markdown","source":["Use the following CSV file for this exercise. Read this file using Pandas or NumPy or using in-built matplotlib function. \\\\\n","https://pynative.com/wp-content/uploads/2019/01/company_sales_data.csv"],"metadata":{"id":"f0JDeA8Lxu-8"}},{"cell_type":"markdown","source":["Exercise 1: Read Total profit of all months and show it using a line plot \\\\\n","Total profit data provided for each month. Generated line plot must include the following properties: –\n","\n","X label name = Month Number \\\\\n","Y label name = Total profit \\\\\n","\n","\n"],"metadata":{"id":"zYDZqjEzyoFN"}},{"cell_type":"code","source":["import matplotlib.pyplot as plt\n","df = pd.read_csv('/content/company_sales_data.csv')\n","x=df['month_number']\n","y=df['total_profit']\n","plt.plot(x,y)\n","plt.xlabel('Month Number')\n","plt.ylabel('Total Profit')\n","plt.show()"],"metadata":{"id":"wp_s9Dh50MQX","colab":{"base_uri":"https://localhost:8080/","height":449},"executionInfo":{"status":"ok","timestamp":1747767876390,"user_tz":-330,"elapsed":407,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"f55cfa9e-91d9-49c0-fa06-f3bcf29c37fa"},"execution_count":73,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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6Ze8lpWVBZlMhscee8yl9/zDH/6A/v37u+Rat956K2QyGVauXNni+bfeegtdunRxyT2IyDswqSIiySUkJGDlypWoq6tzPGcymbBixQokJiZKGJlz/P398eKLL8JisUgdisuYzWapQyDyOkyqiEhyAwcOREJCAr766ivHc1999RUSExMxYMCAFmPr6+vx3HPPITo6Gv7+/rjpppuwc+dOx+v25bANGzZg8ODBCAwMxI033oiCggIAwNKlS/Hyyy9j7969kMlkkMlkWLp0qeP9lZWVuO+++xAYGIgePXrg22+/vWr8Dz30EPR6PT788MPLjnnsscdw7733tnhu5syZuPXWWx0/33rrrXj22Wcxc+ZMhIWFISYmBh9++CFqamrw+OOPIyQkBN27d8cPP/xwyfV/+eUXpKWlwd/fH8OHD8eBAwdavL5lyxbcfPPNCAgIQEJCAp577jnU1NQ4Xu/SpQv++Mc/4tFHH4VGo8FTTz111d83EbXEpIqIPMLUqVPx8ccfO37+17/+hccff/yScXPnzsV//vMfLFu2DLm5uejevTsyMjJw7ty5FuN+//vf44033sCuXbvg5+eHqVOnAgAmTpyI559/Hr1790ZpaSlKS0sxceJEx/tefvllPPDAA9i3bx/uvPNOTJo06ZJrX0yj0eD3v/89XnnllRaJyrVYtmwZIiMjsWPHDjz77LN4+umncf/99+PGG29Ebm4uxo0bh8mTJ6O2trbF++bMmYM33ngDO3fuRFRUFO666y7HzNnx48dx++23Y8KECdi3bx8+//xzbNmyBc8880yLa/z1r39Fv379sGfPHrz00kvX9fsg8kmCiEhCU6ZMEffcc48oLy8XarVanDx5Upw8eVL4+/uLiooKcc8994gpU6YIIYSorq4WSqVSLF++3PF+s9ks4uLixOLFi4UQQmzatEkAED/++KNjzJo1awQAUVdXJ4QQYuHChaJfv36XxAJAvPjii46fq6urBQDxww8/XDb+kSNHihkzZgiTySSSkpLEK6+8IoQQ4s033xRJSUmX/D6bmzFjhhg5cmSLa910002OnxsaGkRQUJCYPHmy47nS0lIBQOTk5LT4/a5cudIx5uzZsyIgIEB8/vnnQgghpk2bJp566qkW9/7555+FXC53fCZJSUni3nvvvezvk4iuzk/KhI6IyC4qKgqZmZlYunQphBDIzMxEZGRkizHHjx+HxWLBiBEjHM8plUoMHToU+fn5LcampaU5ft2pUycAQHl5+VVrtJq/LygoCBqNBuXl5VeNX61W45VXXnHMLl2r5vdXKBSIiIhA3759Hc/FxMQAwCUxpaenO34dHh6OXr16OT6TvXv3Yt++fVi+fLljjBACNpsNhYWFuOGGGwAAgwcPvua4iQhgUkVEHmPq1KmOJal33333uq6lVCodv5bJZAAAm83WpvfZ3+vM+wDgkUcewV//+lf86U9/umTnn1wuhxCixXOtFba3dv9r/b3YVVdX49e//jWee+65S15rnmQGBQU5fU0iuhRrqojIY9x+++0wm82wWCzIyMi45PVu3bpBpVLhl19+cTxnsViwc+dOpKamOn0flUoFq9Xqkpibk8vlWLRoEZYsWYKTJ0+2eC0qKgqlpaUtnsvLy3PZvbdt2+b49fnz53HkyBHHDNTAgQNx6NAhdO/e/ZKHSqVyWQxEvo5JFRF5DIVCgfz8fBw6dAgKheKS14OCgvD0009jzpw5WLt2LQ4dOoQnn3wStbW1mDZtmtP36dKlCwoLC5GXl4fKykrU19e77PeQmZmJYcOG4f3332/x/OjRo7Fr1y588sknOHr0KBYuXHjJDr3r8corr2DDhg04cOAAHnvsMURGRjp2G86bNw9bt27FM888g7y8PBw9ehT//e9/LylUJ6Lrw6SKiDyKRqOBRqO57OuvvfYaJkyYgMmTJ2PgwIE4duwY1q1bh7CwMKfvMWHCBNx+++0YNWoUoqKi8Nlnn7kidIfXX38dJpOpxXMZGRl46aWXMHfuXAwZMgRVVVV49NFHXXbP1157DTNmzMCgQYOg0+nw3XffOWah0tLSkJ2djSNHjuDmm2/GgAEDsGDBAsTFxbns/kQEyMTFi/xERERE1GacqSIiIiJyASZVRERERC7ApIqIiIjIBZhUEREREbkAkyoiIiIiF2BSRUREROQCTKqIiIiIXIBJFREREZELMKkiIiIicgEmVUREREQuwKSKiIiIyAX+P+kxGSZVmncUAAAAAElFTkSuQmCC\n"},"metadata":{}}]},{"cell_type":"markdown","source":["Exercise : Read face cream and facewash product sales data and show it using the bar chart \\\\\n","The bar chart should display the number of units sold per month for each product. \\\\\n","Add a separate bar for each product in the same chart."],"metadata":{"id":"muEpI78E0LjF"}},{"cell_type":"code","source":["plt.bar(df['month_number'],df['facecream'])\n","plt.bar(df['month_number'],df['facewash'])\n","plt.show()\n","#blue for facecream and orange for facewash"],"metadata":{"id":"JmR3PAE71gIi","colab":{"base_uri":"https://localhost:8080/","height":430},"executionInfo":{"status":"ok","timestamp":1747768087638,"user_tz":-330,"elapsed":216,"user":{"displayName":"Astha Yadav","userId":"02732672539016416003"}},"outputId":"a6c9131b-2fb4-40c1-de3f-65df05ae2ea6"},"execution_count":74,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{}}]}]} \ No newline at end of file