我试图在 pandas
中将两个数据框按照公共列名 (orderid) 进行合并。结果数据框 (即合并后的数据框) 正在删除第二个数据框中的 orderid 列。根据 文档,'on' 列应该被保留,除非您明确告诉它不要保留。
import pandas as pd
df = pd.DataFrame([[1,'a'], [2, 'b'], [3, 'c']], columns=['orderid', 'ordervalue'])
df['orderid'] = df['orderid'].astype(str)
df2 = pd.DataFrame([[1,200], [2, 300], [3, 400], [4,500]], columns=['orderid', 'ordervalue'])
df2['orderid'] = df2['orderid'].astype(str)
pd.merge(df, df2, on='orderid', how='outer', copy=True, suffixes=('_left', '_right'))
这将输出以下内容:
| |orderid | ordervalue_left | ordervalue_right |
|------|--------|-----------------|------------------|
| 0 | 1 | a | 200 |
| 1 | 2 | b | 300 |
| 2 | 3 | c | 400 |
| 3 | 4 | | 500 |
我将尝试制作如下内容:
我希望创建的是:
| | orderid_left | ordervalue_left | orderid_left | ordervalue_right |
|------|--------------|-----------------|--------------|------------------|
| 0 | 1 | a | 1 | 200 |
| 1 | 2 | b | 2 | 300 |
| 2 | 3 | c | 3 | 400 |
| 3 | NaN | NaN | 4 | 500 |
我应该如何编写这段代码?