Alexander  Chaptykov
Alexander Chaptykov

Reputation: 63

How to assign values of series to column names of dataframe

I have Series with values:

0               1_AA
1               2_BB
2               3_CC
3               4_DD

and I want to convert this series to names of dataframe columns. It should look like this:

       1_AA     2_BB     3_CC    4_DD
0

Is it possible?

Upvotes: 1

Views: 1330

Answers (2)

MSeifert
MSeifert

Reputation: 152870

One could just use the columns-argument for DataFrame:

>>> import pandas as pd

>>> s = pd.Series(['a', 'b', 'c'])
>>> pd.DataFrame(columns=s)
Empty DataFrame
Columns: [a, b, c]
Index: []

or pass it in directly as list:

>>> pd.DataFrame(columns=['1_AA', '2_BB', '3_CC', '4_DD'])
Empty DataFrame
Columns: [1_AA, 2_BB, 3_CC, 4_DD]
Index: []

Upvotes: 1

MSeifert
MSeifert

Reputation: 152870

You could use dict.fromkeys:

>>> import pandas as pd

>>> s = pd.Series(['1_AA', '2_BB', '3_CC', '4_DD'])
>>> pd.DataFrame(dict.fromkeys(s, [0]))  # each column containing one zero - [0]
   1_AA  2_BB  3_CC  4_DD
0     0     0     0     0

Or collections.OrderedDict, which garantuees that the order of your values is always kept:

>>> from collections import OrderedDict
>>> pd.DataFrame(OrderedDict.fromkeys(s, [0]))
   1_AA  2_BB  3_CC  4_DD
0     0     0     0     0

You could also use empty lists as second argument for fromkeys:

>>> pd.DataFrame(dict.fromkeys(s, []))
Empty DataFrame
Columns: [1_AA, 2_BB, 3_CC, 4_DD]
Index: []

But that creates an empty dataframe - with the correct columns.

Upvotes: 0

Related Questions