{"id":6775,"date":"2023-10-31T16:50:51","date_gmt":"2023-10-31T11:20:51","guid":{"rendered":"https:\/\/python-programs.com\/?p=6775"},"modified":"2023-11-10T12:10:22","modified_gmt":"2023-11-10T06:40:22","slug":"pandas-convert-a-dataframe-into-a-list-of-rows-or-columns-in-python-list-of-lists","status":"publish","type":"post","link":"https:\/\/python-programs.com\/pandas-convert-a-dataframe-into-a-list-of-rows-or-columns-in-python-list-of-lists\/","title":{"rendered":"Pandas : Convert a DataFrame into a list of rows or columns in python | (list of lists)"},"content":{"rendered":"
In this article, we will discuss how we can convert a dataframe into a list, by converting each row or column into a list and creating a python lists from them.<\/p>\n
Let’s first, create a dataframe,<\/p>\n
import pandas as pd\r\n#The List of Tuples\r\nstudents = [('Arun', 23, 'Chennai', 127),\r\n ('Priya', 31, 'Delhi', 174.5),\r\n ('Ritik', 24, 'Mumbai', 181),\r\n ('Kimun', 37, 'Hyderabad', 125),\r\n ('Sinvee', 16, 'Delhi', 175.5),\r\n ('Kunu', 28, 'Mumbai', 115),\r\n ('Lisa', 31, 'Pune', 191)\r\n ]\r\n# Creating DataFrame object\r\nstudentId = pd.DataFrame(students, columns=['Name', 'Age', 'City', 'Score'])\r\nprint(studentId)\r\n<\/pre>\nOutput :\r\n \u00a0 \u00a0Name\u00a0 \u00a0 \u00a0Age\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 City\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0Score\r\n0\u00a0\u00a0\u00a0 Arun\u00a0 \u00a0 \u00a0 23\u00a0 \u00a0 \u00a0Chennai\u00a0 \u00a0 \u00a0 \u00a0 \u00a0127.0\r\n1\u00a0\u00a0 Priya\u00a0 \u00a0 \u00a0 \u00a031\u00a0 \u00a0\u00a0\u00a0\u00a0Delhi\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 174.5\r\n2\u00a0\u00a0 Ritik\u00a0 \u00a0 \u00a0 \u00a0 24\u00a0\u00a0\u00a0\u00a0 Mumbai\u00a0 \u00a0 \u00a0 \u00a0 \u00a0181.0\r\n3\u00a0\u00a0 Kimun\u00a0 \u00a0 \u00a037\u00a0 \u00a0 Hyderabad\u00a0 \u00a0 \u00a0125.0\r\n4\u00a0 \u00a0Sinvee\u00a0 \u00a0 16\u00a0\u00a0\u00a0\u00a0\u00a0 Delhi\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 175.5\r\n5\u00a0\u00a0\u00a0 Kunu\u00a0 \u00a0 28\u00a0\u00a0\u00a0\u00a0 Mumbai\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0115.0\r\n6\u00a0\u00a0\u00a0 Lisa\u00a0 \u00a0 \u00a0 31\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Pune\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 191.0<\/pre>\nConvert a Dataframe into a list of lists \u2013 Rows Wise :<\/h3>\n
In the dataframe created above, we must fetch each line as a list and create a list of these lists.<\/p>\n
Let’s see how we can do this<\/p>\n
import pandas as pd\r\n#The List of Tuples\r\nstudents = [('Arun', 23, 'Chennai', 127),\r\n ('Priya', 31, 'Delhi', 174.5),\r\n ('Ritik', 24, 'Mumbai', 181),\r\n ('Kimun', 37, 'Hyderabad', 125),\r\n ('Sinvee', 16, 'Delhi', 175.5),\r\n ('Kunu', 28, 'Mumbai', 115),\r\n ('Lisa', 31, 'Pune', 191)\r\n ]\r\n# Creating DataFrame object\r\nstudentId = pd.DataFrame(students, columns=['Name', 'Age', 'City', 'Score'])\r\n\r\n# By Converting a dataframe to the list of rows (list of lists)\r\nlistOfRows = studentId.to_numpy().tolist()\r\nprint(listOfRows)\r\nprint(type(listOfRows))\r\n<\/pre>\nOutput :\r\n[['Arun', 23, 'Chennai', 127.0], ['Priya', 31, 'Delhi', 174.5], ['Ritik', 24, 'Mumbai', 181.0], ['Kimun', 37, 'Hyderabad', 125.0], ['Sinvee', 16, 'Delhi', 175.5], ['Kunu', 28, 'Mumbai', 115.0], ['Lisa', 31, 'Pune', 191.0]]\r\n<class 'list'><\/pre>\nIt Converted the data name into a sequential target list, that is, each linked list contains a line of data names. But what happened in one line ?<\/p>\n
How did it work?<\/h4>\n
Let’s divide one line above into several lines to understand the concept behind it.<\/p>\n
Step 1: Convert the Dataframe to a nested Numpy array using DataFrame.to_numpy() :<\/h4>\n
import pandas as pd\r\n#The List of Tuples\r\nstudents = [('Arun', 23, 'Chennai', 127),\r\n ('Priya', 31, 'Delhi', 174.5),\r\n ('Ritik', 24, 'Mumbai', 181),\r\n ('Kimun', 37, 'Hyderabad', 125),\r\n ('Sinvee', 16, 'Delhi', 175.5),\r\n ('Kunu', 28, 'Mumbai', 115),\r\n ('Lisa', 31, 'Pune', 191)\r\n ]\r\n# Creating DataFrame object\r\nstudentId = pd.DataFrame(students, columns=['Name', 'Age', 'City', 'Score'])\r\n\r\n\r\n# By getting rows of a dataframe as a nested numpy array\r\nnumpy_2d_array = studentId.to_numpy()\r\nprint(numpy_2d_array)\r\nprint(type(numpy_2d_array))<\/pre>\nOutput :\r\n[['Arun' 23 'Chennai' 127.0]\r\n['Priya' 31 'Delhi' 174.5]\r\n['Ritik' 24 'Mumbai' 181.0]\r\n['Kimun' 37 'Hyderabad' 125.0]\r\n['Sinvee' 16 'Delhi' 175.5]\r\n['Kunu' 28 'Mumbai' 115.0]\r\n['Lisa' 31 'Pune' 191.0]]\r\n<class 'numpy.ndarray'><\/pre>\nActually
DataFrame.to_numpy()<\/code> converts data name into Numpy array. So we have a 2D Numpy array here. We have confirmed that by printing the type of returned item.<\/p>\n
Step 2: Convert 2D Numpy array into a list of lists :<\/h4>\n
Numpy provides a function
tolist()<\/code>, which converts Numpy Array into a list. Let’s call that function in the object built above 2D Numpy,<\/p>\n
import pandas as pd\r\n#The List of Tuples\r\nstudents = [('Arun', 23, 'Chennai', 127),\r\n ('Priya', 31, 'Delhi', 174.5),\r\n ('Ritik', 24, 'Mumbai', 181),\r\n ('Kimun', 37, 'Hyderabad', 125),\r\n ('Sinvee', 16, 'Delhi', 175.5),\r\n ('Kunu', 28, 'Mumbai', 115),\r\n ('Lisa', 31, 'Pune', 191)\r\n ]\r\n# Creating DataFrame object\r\nstudentId = pd.DataFrame(students, columns=['Name', 'Age', 'City', 'Score'])\r\n\r\n\r\n# By getting rows of a dataframe as a nested numpy array\r\nnumpy_2d_array = studentId.to_numpy()\r\n\r\n# By Converting 2D numpy array to the list of lists\r\nlistOfRows = numpy_2d_array.tolist()\r\nprint(listOfRows)\r\nprint(type(listOfRows))\r\n<\/pre>\nOutput :\r\n[['Arun', 23, 'Chennai', 127.0], ['Priya', 31, 'Delhi', 174.5], ['Ritik', 24, 'Mumbai', 181.0], ['Kimun', 37, 'Hyderabad', 125.0], ['Sinvee', 16, 'Delhi', 175.5], ['Kunu', 28, 'Mumbai', 115.0], ['Lisa', 31, 'Pune', 191.0]]\r\n<class 'list'>\r\n\r\n<\/pre>\nIt converted 2D Numpy Array into a list.<\/p>\n
So, this is how we changed the dataframe to 2D Numpy Array and then List of Lists, where each nested list represents a dataframe line.<\/p>\n
Convert a Dataframe into a list of lists \u2013 Column Wise :<\/h3>\n
Now turn each column into a list and create a list of these lists,<\/p>\n
import pandas as pd\r\n#The List of Tuples\r\nstudents = [('Arun', 23, 'Chennai', 127),\r\n ('Priya', 31, 'Delhi', 174.5),\r\n ('Ritik', 24, 'Mumbai', 181),\r\n ('Kimun', 37, 'Hyderabad', 125),\r\n ('Sinvee', 16, 'Delhi', 175.5),\r\n ('Kunu', 28, 'Mumbai', 115),\r\n ('Lisa', 31, 'Pune', 191)\r\n ]\r\n# Creating DataFrame object\r\nstudentId = pd.DataFrame(students, columns=['Name', 'Age', 'City', 'Score'])\r\n\r\n\r\n# Convert a dataframe to the list of columns i.e. list of lists\r\nlistOfRows = studentId.transpose().values.tolist()\r\nprint(listOfRows)\r\nprint(type(listOfRows))\r\n<\/pre>\nOutput :\r\n[['Arun', 'Priya', 'Ritik', 'Kimun', 'Sinvee', 'Kunu', 'Lisa'], [23, 31, 24, 37, 16, 28, 31], ['Chennai', 'Delhi', 'Mumbai', 'Hyderabad', 'Delhi', 'Mumbai', 'Pune'], [127.0, 174.5, 181.0, 125.0, 175.5, 115.0, 191.0]]\r\n\r\n<class 'list'><\/pre>\nHow did it work?<\/h4>\n
It works on the same concept we discussed above, just one more step here i.e.<\/p>\n
Step 1: Transpose the dataframe to convert rows as columns and columns as rows :<\/h4>\n
import pandas as pd\r\n#The List of Tuples\r\nstudents = [('Arun', 23, 'Chennai', 127),\r\n ('Priya', 31, 'Delhi', 174.5),\r\n ('Ritik', 24, 'Mumbai', 181),\r\n ('Kimun', 37, 'Hyderabad', 125),\r\n ('Sinvee', 16, 'Delhi', 175.5),\r\n ('Kunu', 28, 'Mumbai', 115),\r\n ('Lisa', 31, 'Pune', 191)\r\n ]\r\n# Creating DataFrame object\r\nstudentId = pd.DataFrame(students, columns=['Name', 'Age', 'City', 'Score'])\r\n\r\n\r\n\r\n# Transposing the dataframe, rows are now columns and columns are now rows\r\ntransposedObj = studentId.transpose()\r\nprint(transposedObj)\r\n\r\n<\/pre>\nOutput :\r\n0\u00a0\u00a0\u00a0\u00a0\u00a0 1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 2\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 4 \u00a0\u00a0\u00a0\u00a0\u00a0\u00a05\u00a0\u00a0\u00a0\u00a0\u00a0 6\r\nName\u00a0\u00a0\u00a0\u00a0\u00a0 Arun\u00a0 Priya\u00a0\u00a0 Ritik\u00a0\u00a0\u00a0\u00a0\u00a0 Kimun\u00a0 Sinvee\u00a0\u00a0\u00a0 Kunu\u00a0\u00a0 Lisa\r\nAge\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 23\u00a0\u00a0\u00a0\u00a0 31\u00a0\u00a0\u00a0\u00a0\u00a0 24\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 37\u00a0\u00a0\u00a0\u00a0\u00a0 16\u00a0\u00a0\u00a0\u00a0\u00a0 28\u00a0\u00a0\u00a0\u00a0 31\r\nCity\u00a0\u00a0 Chennai\u00a0 Delhi\u00a0 Mumbai\u00a0 Hyderabad\u00a0\u00a0 Delhi\u00a0 Mumbai\u00a0\u00a0 Pune\r\nScore\u00a0\u00a0\u00a0 127.0\u00a0 174.5\u00a0\u00a0 181.0\u00a0\u00a0\u00a0\u00a0\u00a0 125.0\u00a0\u00a0 175.5 \u00a0\u00a0115.0\u00a0 191.0<\/pre>\ntransposedObj is a transpose of the original data i.e. lines in studentId with columns in transposedObj and columns in studentId are lines in transposedObj.<\/p>\n
Step 2: Convert the Dataframe to a nested Numpy array using DataFrame.to_numpy() :<\/h4>\n
import pandas as pd\r\n#The List of Tuples\r\nstudents = [('Arun', 23, 'Chennai', 127),\r\n ('Priya', 31, 'Delhi', 174.5),\r\n ('Ritik', 24, 'Mumbai', 181),\r\n ('Kimun', 37, 'Hyderabad', 125),\r\n ('Sinvee', 16, 'Delhi', 175.5),\r\n ('Kunu', 28, 'Mumbai', 115),\r\n ('Lisa', 31, 'Pune', 191)\r\n ]\r\n# Creating DataFrame object\r\nstudentId = pd.DataFrame(students, columns=['Name', 'Age', 'City', 'Score'])\r\n\r\n\r\n# Transposing the dataframe, rows are now columns and columns are now rows\r\ntransposedObj = studentId.transpose()\r\n\r\n\r\n# By getting rows of a dataframe as a nested numpy array\r\nnumpy_2d_array = transposedObj.to_numpy()\r\nprint(numpy_2d_array)\r\nprint(type(numpy_2d_array))\r\n<\/pre>\nOutput :\r\n[['Arun' 'Priya' 'Ritik' 'Kimun' 'Sinvee' 'Kunu' 'Lisa']\r\n[23 31 24 37 16 28 31]\r\n['Chennai' 'Delhi' 'Mumbai' 'Hyderabad' 'Delhi' 'Mumbai' 'Pune']\r\n[127.0 174.5 181.0 125.0 175.5 115.0 191.0]]\r\n<class 'numpy.ndarray'><\/pre>\nStep 3: Convert 2D Numpy array into a list of lists. :<\/h4>\n
import pandas as pd\r\n#The List of Tuples\r\nstudents = [('Arun', 23, 'Chennai', 127),\r\n ('Priya', 31, 'Delhi', 174.5),\r\n ('Ritik', 24, 'Mumbai', 181),\r\n ('Kimun', 37, 'Hyderabad', 125),\r\n ('Sinvee', 16, 'Delhi', 175.5),\r\n ('Kunu', 28, 'Mumbai', 115),\r\n ('Lisa', 31, 'Pune', 191)\r\n ]\r\n# Creating DataFrame object\r\nstudentId = pd.DataFrame(students, columns=['Name', 'Age', 'City', 'Score'])\r\n\r\n\r\n# Transposing the dataframe, rows are now columns and columns are now rows\r\ntransposedObj = studentId.transpose()\r\n\r\n\r\n# By getting rows of a dataframe as a nested numpy array\r\nnumpy_2d_array = transposedObj.to_numpy()\r\n\r\n#By Converting 2D numpy array to the list of lists\r\nlistOfRows = numpy_2d_array.tolist()\r\nprint(listOfRows)\r\nprint(type(listOfRows))\r\n<\/pre>\nOutput :\r\n[['Arun', 'Priya', 'Ritik', 'Kimun', 'Sinvee', 'Kunu', 'Lisa'], [23, 31, 24, 37, 16, 28, 31], ['Chennai', 'Delhi', 'Mumbai', 'Hyderabad', 'Delhi', 'Mumbai', 'Pune'], [127.0, 174.5, 181.0, 125.0, 175.5, 115.0, 191.0]]\r\n<class 'list'><\/pre>\nWant to expert in the python programming language? Exploring\u00a0Python Data Analysis using Pandas<\/a>\u00a0tutorial changes your knowledge from basic to advance level in python concepts.<\/p>\n
Read more Articles on Python Data Analysis Using Padas \u2013 Select items from a Dataframe<\/strong><\/p>\n
\n
- Select Rows & Columns in a Dataframe using loc & iloc in<\/a><\/li>\n
- Select Rows\u00a0in a Dataframe\u00a0based on conditions<\/a><\/li>\n
- Get minimum values in rows or columns & their index position in Dataframe<\/a><\/li>\n
- Get unique values in columns of a Dataframe<\/a><\/li>\n
- Select first or last N rows in a Dataframe using head() & tail()<\/a><\/li>\n
- Get a list of column and row names in a DataFrame<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"
Converting a DataFrame into a list of rows or columns in python | (list of lists) In this article, we will discuss how we can convert a dataframe into a list, by converting each row or column into a list and creating a python lists from them. Let’s first, create a dataframe, import pandas as …<\/p>\n