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。
有了这 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。