Insert a column at the beginning (leftmost end) of a DataFrame

后端 未结 1 1155
你的背包
你的背包 2020-12-10 08:37

I have dataframe with 30 columns and want to add one new column to start.

1条回答
  •  抹茶落季
    2020-12-10 09:13

    DataFrame.insert

    df = pd.DataFrame({'A': ['x'] * 3, 'B': ['x'] * 3})
    df
    
       A  B
    0  x  x
    1  x  x
    2  x  x
    
    seq = ['a', 'b', 'c']
    

    # This works in-place.
    df.insert(0, 'C', seq)
    df
    
       C  A  B
    0  a  x  x
    1  b  x  x
    2  c  x  x
    

    pd.concat

    df = pd.concat([pd.Series(seq, index=df.index, name='C'), df], axis=1)
    df
    
       C  A  B
    0  a  x  x
    1  b  x  x
    2  c  x  x
    

    DataFrame.reindex + assign
    Reindex first, then assign will remember the position of the original column.

    df.reindex(['C', *df.columns], axis=1).assign(C=seq)
    
       C  A  B
    0  a  x  x
    1  b  x  x
    2  c  x  x
    

    0 讨论(0)
提交回复
热议问题