I need to convert my list into a one-column pandas dataframe.

Current List (len=3):

['Thanks You','Its fine no problem','Are you sure']

Required Pandas DF (shape =3,):

0 Thank You1 Its fine no problem2 Are you sure

N.B. The numbers represent index in the required Pandas DF above.

7

Best Answer


Use:

L = ['Thanks You', 'Its fine no problem', 'Are you sure']#create new df df = pd.DataFrame({'col':L})print (df)col0 Thanks You1 Its fine no problem2 Are you sure

df = pd.DataFrame({'oldcol':[1,2,3]})#add column to existing df df['col'] = Lprint (df)oldcol col0 1 Thanks You1 2 Its fine no problem2 3 Are you sure

Thank you DYZ:

#default column name 0df = pd.DataFrame(L)print (df)00 Thanks You1 Its fine no problem2 Are you sure

If your list looks like [1,2,3], you can do:

import pandas as pdlst = [1,2,3]df = pd.DataFrame([lst])df.columns =['col1','col2','col3']df

To get this:

 col1 col2 col30 1 2 3

Alternatively, you can create a column as follows:

import numpy as npimport pandas as pddf = pd.DataFrame(np.array([lst]).T)df.columns =['col1']df

To get this:

 col10 11 22 3

You can directly call the pd.DataFrame() method and pass your list as the parameter.

import pandas as pdl = ['Thanks You', 'Its fine no problem', 'Are you sure']pd.DataFrame(l)

Output:

 00 Thanks You1 Its fine no problem2 Are you sure

And if you have multiple lists and you want to make a dataframe out of it. You can do it as following:

import pandas as pdnames = ["A", "B", "C", "D"]salary = [50000, 90000, 41000, 62000]age = [24, 24, 23, 25]data = pd.DataFrame([names, salary, age]) # Each list would be added as a rowdata = data.transpose() # To Transpose and make each rows as columnsdata.columns = ['Names', 'Salary', 'Age'] # Rename the columnsdata.head()

Output:

 Names Salary Age0 A 50000 241 B 90000 242 C 41000 233 D 62000 25

Example:

['Thank You','It\'s fine no problem','Are you sure?']

Code block:

import pandas as pddf = pd.DataFrame(lst)

Output:

 00 Thank You1 It's fine no problem2 Are you sure?

It is not recommended to remove the column names of the Pandas dataframe. But if you still want your data frame without header (as per the format you posted in the question) you can do this:

df = pd.DataFrame(lst)df.columns = ['']

Output will be like this:

0 Thank You1 It's fine no problem2 Are you sure?

Or

df = pd.DataFrame(lst).to_string(header=False)

But the output will be a list instead of a dataframe:

0 Thank You1 It's fine no problem2 Are you sure?

For converting a list into Pandas core data frame, we need to use DataFrame method from the pandas package.

There are different ways to perform the above operation (assuming Pandas is imported as pd)

  1. pandas.DataFrame({'Column_Name':Column_Data})
  • Column_Name : String
  • Column_Data : List form
  1.  Data = pandas.DataFrame(Column_Data)`Data.columns = ['Column_Name']

So, for the above mentioned issue, the code snippet is

import pandas as pdContent = ['Thanks You','Its fine no problem','Are you sure']Data = pd.DataFrame({'Text': Content})
list = ['Thanks You', 'Its fine no problem', 'Are you sure']df = pd.DataFrame(list)

Output:

 00 Thanks You1 Its fine no problem2 Are you sure

Column name:

df.columns = ['col name']

You can also assign() a list to an existing dataframe. This is especially useful if you're chaining multiple methods and you need to assign a column that you need to use later in the chain.

df = pd.DataFrame()df1 = df.assign(col=['Thanks You', 'Its fine no problem', 'Are you sure'])

res