Pandas automatically converts row to column

Viewed 3425

I have a very simple dataframe like so:

In [8]: df
Out[8]: 
   A  B  C
0  2  a  a
1  3  s  3
2  4  c  !
3  1  f  1

My goal is to extract the first row in such a way that looks like this:

   A  B  C
0  2  a  a

As you can see the dataframe shape (1x3) is preserved and the first row still has 3 columns.

However when I type the following command df.loc[0] the output result is this:

df.loc[0]
Out[9]: 
A    2
B    a
C    a
Name: 0, dtype: object

As you can see the row has turned into a column with 3 rows! (3x1 instead of 3x1). How is this possible? how can I simply extract the row and preserve its shape as described in my goal? Could you provide a smart and elegant way to do it?

I tried to use the transpose command .T but without success... I know I could create another dataframe where the columns are extracted by the original dataframe but this way quite tedious and not elegant I would say (pd.DataFrame({'A':[2], 'B':'a', 'C':'a'})).

Here is the dataframe if you need it:

import pandas as pd
df = pd.DataFrame({'A':[2,3,4,1], 'B':['a','s','c','f'], 'C':['a', 3, '!', 1]})
2 Answers
Related