Pandas: Multiple columns into one column

后端 未结 4 1874
眼角桃花
眼角桃花 2020-11-29 05:38

I have the following data (2 columns, 4 rows):

Column 1: A, B, C, D

Column 2: E, F, G, H

I am attempting to combine the columns into one c

4条回答
  •  情歌与酒
    2020-11-29 06:06

    You can flatten the values in column direction using ravel, is much faster.

    In [1238]: df
    Out[1238]:
      Column 1 Column 2
    0        A        E
    1        B        F
    2        C        G
    3        D        H
    
    In [1239]: pd.Series(df.values.ravel('F'))
    Out[1239]:
    0    A
    1    B
    2    C
    3    D
    4    E
    5    F
    6    G
    7    H
    dtype: object
    

    Details

    Medium

    In [1245]: df.shape
    Out[1245]: (4000, 2)
    
    In [1246]: %timeit pd.Series(df.values.ravel('F'))
    10000 loops, best of 3: 86.2 µs per loop
    
    In [1247]: %timeit df['Column 1'].append(df['Column 2']).reset_index(drop=True)
    1000 loops, best of 3: 816 µs per loop
    

    Large

    In [1249]: df.shape
    Out[1249]: (40000, 2)
    
    In [1250]: %timeit pd.Series(df.values.ravel('F'))
    10000 loops, best of 3: 87.5 µs per loop
    
    In [1251]: %timeit df['Column 1'].append(df['Column 2']).reset_index(drop=True)
    100 loops, best of 3: 1.72 ms per loop
    

提交回复
热议问题