首页 > 解决方案 > 将两列附加为一列并用空行分隔它们 pandas

问题描述

我需要将两列附加到一列并用空行分隔它们

这是当前代码(受此问题启发):

import pandas as pd

df = pd.DataFrame({'Column 1':['A', 'B', 'C', 'D'],'Column 2':['E', 'F', 'G', 'H'],'Column 3':['I', 'J', 'K', 'L']})
df['col']=df['Column 1'].append(df['Column 2']).reset_index(drop=True)
print(df) 

输出:

  Column 1 Column 2 Column 3 col
0        A        E        I   A
1        B        F        J   B
2        C        G        K   C
3        D        H        L   D

所需的输出:

  Column 1 Column 2 Column 3 col
0        A        E        I   A
1        B        F        J   B
2        C        G        K   C
3        D        H        L   D
4      nan      nan      nan nan
5      nan      nan      nan   E
6      nan      nan      nan   F
7      nan      nan      nan   G
8      nan      nan      nan   H

可行吗?

标签: python-3.xpandasappendrow

解决方案


我的想法是使用pandas.concat

import pandas as pd

df = pd.DataFrame({'Column 1':['A', 'B', 'C', 'D'],'Column 2':['E', 'F', 'G', 'H'],'Column 3':['I', 'J', 'K', 'L']})
col = df['Column 1'].append(pd.Series(float('nan'))).append(df['Column 2']).reset_index(drop=True)

df = pd.concat([df, col], axis=1)

print(df)

  Column 1 Column 2 Column 3    0
0        A        E        I    A
1        B        F        J    B
2        C        G        K    C
3        D        H        L    D
4      NaN      NaN      NaN  NaN
5      NaN      NaN      NaN    E
6      NaN      NaN      NaN    F
7      NaN      NaN      NaN    G
8      NaN      NaN      NaN    H

推荐阅读