Set column names in pandas data frame from_dict with orient = 'index'

Question:

I looked already at this question: pandas create named columns in dataframe from dict. However, my example is slightly different.

I have a dictionary:
my_dict = {'key1' : [1,2,3], 'key2' : [4,5,6], 'key3' :[7,8,9]}

And I created a pandas dataframe: df = pd.DataFrame.from_dict(my_dict, orient='index'), which is row oriented. However, when writing columns = ['one', 'two', 'three'] I get an error, as in the link above.

How do I name them?

Asked By: Euler_Salter

||

Answers:

Is there a reason you can’t set the column names on the next line?

my_dict = {'key1' : [1,2,3], 'key2' : [4,5,6], 'key3' :[7,8,9]}
df = pd.DataFrame.from_dict(my_dict, orient='index')
df.columns = ['one', 'two', 'three']

Should work.

Answered By: LangeHaare

From version 0.23.0, you can specify a columns parameter in from_dict:

my_dict = {'key1': [1, 2, 3], 'key2': [4, 5, 6], 'key3': [7, 8, 9]}
df = pd.DataFrame.from_dict(my_dict, orient='index', columns=['one', 'two', 'three'])
Answered By: Ninjakannon
my_dict = {'key1' : [1,2,3], 'key2' : [4,5,6], 'key3' :[7,8,9]}
df = pd.DataFrame.from_dict(my_dict, orient='columns')
df.columns = ['one', 'two', 'three']

Changed orient from index to columns. This worked for me.

Answered By: Harshini Kanukuntla
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.