CF84 CF84 - 16 days ago 4
Python Question

Pandas: getting a list inside a dataframe as row

I have a list like this:

l1=[1,2,3,4,5,6,7,8]


This list is supposed to be a row of a dataframe, which I create empty like this:

df = pd.DataFrame(columns=['A','B','C','D','E','F','G','H'],
index=['l1','l2','l3','l4'])


Now I want the values of
l1
to appear in the first row of the dataframe. How can I do this?

My attempt:
df.loc['l1'] = pd.Series(l1)


but this returns an empty dataframe:

A B C D E F G H
l1 NaN NaN NaN NaN NaN NaN NaN NaN
l2 NaN NaN NaN NaN NaN NaN NaN NaN
l3 NaN NaN NaN NaN NaN NaN NaN NaN
l4 NaN NaN NaN NaN NaN NaN NaN NaN

Answer

Use simply list:

df.loc['l1'] = l1
print (df)                      
      A    B    C    D    E    F    G    H
l1    1    2    3    4    5    6    7    8
l2  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN
l3  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN
l4  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN

Or add parameter index with values of df.column, because index of Series has to be same as columns of DataFrame for alignment:

df.loc['l1'] = pd.Series(l1, index = df.columns)
print (df)                      
      A    B    C    D    E    F    G    H
l1    1    2    3    4    5    6    7    8
l2  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN
l3  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN
l4  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN