Python:加入数据框问题

Python: Join dataframes issues

有了这 2 个数据帧:

df1 = pd.DataFrame(
    {
        "ID": ["ID0", "ID1", "ID2", "ID3"],
        "A": ["A0", "A1", "A2", "A3"],
        "B": ["B0", "B1", "B2", "B3"],
    },
)


df2 = pd.DataFrame(
    {
        "ID": ["ID0", "ID1", "ID2", "ID4"],
        "C": ["C0", "C1", "C2", "C4"],
        "D": ["D0", "D1", "D2", "D4"],
    },
)

我的目标是加入他们,没有重复的 ID,并且在没有信息时有 None:

ID  A   B   C   D
ID0 A0  B0  C0  D0
ID1 A1  B1  C1  D1
ID2 A2  B2  C2  D2
ID3 A3  B3  None None
ID4 None None C4 D4

执行此操作的 .concat 参数是什么,尝试了几次但没有我想要的结果。

改用pd.merge

df1.merge(df2, on='ID', how='outer')

输出:

    ID    A    B    C    D
0  ID0   A0   B0   C0   D0
1  ID1   A1   B1   C1   D1
2  ID2   A2   B2   C2   D2
3  ID3   A3   B3  NaN  NaN
4  ID4  NaN  NaN   C4   D4

这将在缺少值的地方出现 Nans。