In Machine Learning, the model requires a dataset to operate, i.e. to train and test. But data doesn’t come fully prepared and ready to use. There are discrepancies like “Nan”/ “Null” / “NA” values in many rows and columns. Sometimes the data set also contains some of the row and columns which are not even required in the operation of our model. In such conditions, it requires proper cleaning and modification of the data set to make it an efficient input for our model. We achieve that by practicing “**Data Wrangling**” before giving data input to the model.

Ok, So let’s dive into the programming part. Our first aim is to create a Pandas dataframe in Python, as you may know, pandas is one of the most used libraries of Python.

**Example:**

`# importing the pandas library ` `import` `pandas as pd ` ` ` ` ` `# creating a dataframe object ` `student_register ` `=` `pd.DataFrame() ` ` ` `# assigning values to the ` `# rows and columns of the ` `# dataframe ` `student_register[` `'Name'` `] ` `=` `[` `'Abhijit'` `, ` ` ` `'Smriti'` `, ` ` ` `'Akash'` `, ` ` ` `'Roshni'` `] ` ` ` `student_register[` `'Age'` `] ` `=` `[` `20` `, ` `19` `, ` `20` `, ` `14` `] ` `student_register[` `'Student'` `] ` `=` `[` `False` `, ` `True` `, ` ` ` `True` `, ` `False` `] ` ` ` `student_register ` |

*chevron_right*

*filter_none*

**Output:**

As you can see, the dataframe object has four rows `[0, 1, 2, 3]`

and three columns`[“Name”, “Age”, “Student”]`

respectively. The column which contains the index values i.e. [0, 1, 2, 3] is known as the **index column**, which is a default part in pandas datagram. We can change that as per our requirement too because Python is powerful.

Next, for some reason we want to add a new student in the datagram, i.e you want to add a new row to your existing data frame, that can be achieved by the following code snippet.

One important concept is that the “dataframe” object of Python, consists of rows which are “series” objects instead, stack together to form a table. Hence adding a new row means creating a new series object and appending it to the dataframe.

**Example:**

`# creating a new pandas ` `# series object ` `new_person ` `=` `pd.Series([` `'Mansi'` `, ` `19` `, ` `True` `], ` ` ` `index ` `=` `[` `'Name'` `, ` `'Age'` `, ` ` ` `'Student'` `]) ` ` ` `# using the .append() function ` `# to add that row to the dataframe ` `student_register.append(new_person, ignore_index ` `=` `True` `) ` |

*chevron_right*

*filter_none*

**Output:**

Before processing and wrangling any data you need to get the total overview of it, which includes statistical conclusions like **standard deviation(std), mean and it’s quartile distributions**. Also, you need to know the exact information of each column, i.e. what type of value it stores and how many of them are unique. There are three support functions, `.shape`

, `.info()`

and `.describe()`

, which outputs the shape of the table, information on rows and columns, and statistical information of the dataframe (numerical column only) respectively.

**Example:**

`# for showing the dimension ` `# of the dataframe ` `print` `(` `'Shape'` `) ` `print` `(student_register.shape) ` ` ` `# showing info about the data ` `print` `(` `"\n\nInfo\n"` `) ` `student_register.info() ` ` ` `# for showing the statistical ` `# info of the dataframe ` `print` `(` `"\n\nDescribe"` `) ` `student_register.describe() ` |

*chevron_right*

*filter_none*

**Output:**

In the above example, the `.shape`

function gives an output (4, 3) as that is the size of the created dataframe.

**The description of the output given by .info() method is as follows:**

**“RangeIndex”**describes about the index column, i.e. [0, 1, 2, 3] in our datagram. Which is the number of rows in our dataframe.- As the name suggests
**“Data columns”**give the total number of columns as output. **“Name”, “Age”, “Student”**are the name of the columns in our data, “non-null ” tells us that in the corresponding column, there is no NA/ Nan/ None value exists. “object”, “int64″ and “bool” are the datatypes each column have.**“dtype”**gives you an overview of how many data types present in the datagram, which in term simplifies the data cleaning process.

Also, in high-end machine learning models,**“memory usage”**is an important term, we can’t neglect that.

**The description of the output given by .describe() method is as follows:**

**count**is the number of rows in the dataframe.**mean**is the mean value of all the entries in the “Age” column.**std**is the standard deviation of the corresponding column.**min**and max are the minimum and maximum entry in the column respectively.- 25%, 50% and 75% are the
**First Quartiles**,**Second Quartile(Median)**and**Third Quartile**respectively, which gives us important info on the distribution of the dataset and makes it simpler to apply an ML model.

## Recommended Posts:

- Python | Data analysis using Pandas
- Data profiling in Pandas using Python
- Python | Pandas Series.data
- Python | Pandas Index.data
- Python | Data Comparison and Selection in Pandas
- Get the data type of column in Pandas - Python
- Python | Filtering data with Pandas .query() method
- How to Filter and save the data as new files in Excel with Python Pandas?
- Python | Pandas Series.astype() to convert Data type of series
- Pandas Built-in Data Visualization | ML
- Indexing and Selecting Data with Pandas
- Using csv module to read the data in Pandas
- Working with Missing Data in Pandas
- Clean the string data in the given Pandas Dataframe
- Construct a DataFrame in Pandas using string data
- Add a new column in Pandas Data Frame Using a Dictionary
- How to Check the Data Type in Pandas DataFrame?
- Change Data Type for one or more columns in Pandas Dataframe
- Analyzing Mobile Data Speeds from TRAI with Pandas
- Python | pandas.to_markdown() in Pandas

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.