pythonpandasdataframe

Dataframe convert header row to row pandas


have a df with values

df:

165  156  1    test    greater 56gsa
-------------------------------------
spin 201  2    normal  lesser  12asgs
pine 202  3    fast    greater 5sasgs

required output:

0     1   2     3        4       5
-------------------------------------
165  156  1    test    greater 56gsa
spin 201  2    normal  lesser  12asgs
pine 202  3    fast    greater 5sasgs

Solution

  • If DataFrame is created from file then header=None parameter is your friend:

    df = pd.read_csv(file, header=None)
    

    pandas >= 2.0:

    If not then convert column to one row DataFrame and concatenate (append not working anymore) to original data:

    df = pd.concat([df.columns.to_frame().T, df])
    df.columns = range(len(df.columns))
    print (df)
          0    1  2       3        4       5
    0   165  156  1    test  greater   56gsa
    1  spin  201  2  normal   lesser  12asgs
    2  pine  202  3    fast  greater  5sasgs
    

    pandas < 2.0 (original answer):

    If not then convert column to one row DataFrame and DataFrame.append to original data:

    df = df.columns.to_frame().T.append(df, ignore_index=True)
    df.columns = range(len(df.columns))
    print (df)
          0    1  2       3        4       5
    0   165  156  1    test  greater   56gsa
    1  spin  201  2  normal   lesser  12asgs
    2  pine  202  3    fast  greater  5sasgs