将两列相加为一列,并用空行pandas将其分开

问题描述 投票:1回答:3

我需要将两列相加为一列,并用空行将它们分开。

这就是 现行代码 (受 这个问题) :

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.x pandas append row
3个回答
1
投票

我们需要创建一个 Series 的两列,然后使用右连接将该列和额外的值添加到数据框中。

在数据框架中使用 right 加入 如下。

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(Series(np.nan)).append(df['Column 2']).reset_index(drop=True)
col.name='col'
df = df.join(col, how='right')
print(df)

4
投票

我的想法是用 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

3
投票

是的,可以做到

df['col']=df['Column 1']
df=df.append(pd.DataFrame({'Column 2':[np.nan]}).append(df[['Column 2']]).rename(columns={'Column 2':'col'})).reset_index(drop=True)

df
Out[127]: 
  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
© www.soinside.com 2019 - 2024. All rights reserved.