我需要将两列相加为一列,并用空行将它们分开。
这就是 现行代码 (受 这个问题) :
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
是否可以做到?
我们需要创建一个 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)
我的想法是用 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
是的,可以做到
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