67

I have a list of items like this:

A = ['1', 'd', 'p', 'bab', '']

My goal is to convert such list into a dataframe of 1 row and 5 columns. If I type pd.DataFrame(A) I get 5 rows and 1 column. What should I do in order to get the result I want?

2 Answers 2

82

You can use:

df = pd.DataFrame([A])
print (df)
   0  1  2    3 4
0  1  d  p  bab  

If all values are strings:

df = pd.DataFrame(np.array(A).reshape(-1,len(A)))
print (df)

   0  1  2    3 4
0  1  d  p  bab  

Thank you AKS:

df = pd.DataFrame(A).T
print (df)
   0  1  2    3 4
0  1  d  p  bab  
Sign up to request clarification or add additional context in comments.

3 Comments

What about pd.DataFrame(A).T?
pd.DataFrame([A]) converts list into a series, not a row.
Using pd.DataFrame(A).T can break dtypes.
41

This is somewhat peripheral to your particular issue, but I figured I would post it in case it helps someone else out.

To convert a list of lists (and give each column a name), just pass the list to the data attribute (along with your desired column names) when instantiating the new dataframe, like so:

my_python_list = [['foo1', 'bar1'],
                  ['foo2', 'bar2']]
new_df = pd.DataFrame(columns=['my_column_name_1', 'my_column_name_2'], data=my_python_list)

result:

  my_column_name_1 my_column_name_2
0             foo1             bar1
1             foo2             bar2

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.