Ari
Ari

Reputation: 6159

pandas dataframe from_dict - Set column name for key, and column name for key-value

I have a dictionary as follows:

my_keys = {'a':10, 'b':3, 'c':23}

I turn it into a Dataframe:

df = pd.DataFrame.from_dict(my_keys)

It outputs the df as below

     a     b    c
0    10    3    23

How can I get it to look like below:

Col1    Col2
a        10
b         3
c        23

I've tried orient=index but I still can't get column names?

Upvotes: 4

Views: 7868

Answers (1)

jezrael
jezrael

Reputation: 862581

You can create list of tuples and pass to DataFrame constructor:

df = pd.DataFrame(list(my_keys.items()), columns=['col1','col2'])

Or convert keys and values to separate lists:

df = pd.DataFrame({'col1': list(my_keys.keys()),'col2':list(my_keys.values())})

print (df)
  col1  col2
0    a    10
1    b     3
2    c    23

Your solution should be changed by orient='index' and columns, but then is necessary add DataFrame.rename_axis and DataFrame.reset_index for column from index:

df = (pd.DataFrame.from_dict(my_keys, orient='index', columns=['col2'])
        .rename_axis('col1')
        .reset_index())

Upvotes: 5

Related Questions