← retour aux snippets

pandas: merge (inner/left/right/outer)

Joindre des DataFrames avec différents types de jointures.

python pandas #pandas#merge#join

objectif

Joindre des DataFrames avec différents types de jointures.

code minimal

import pandas as pd

a = pd.DataFrame({"id":[1,2,3], "x":[10,20,30]})
b = pd.DataFrame({"id":[2,3,4], "y":[200,300,400]})
print(a.merge(b, on="id", how="left").fillna({"y":0}).to_dict(orient="records"))

utilisation

import pandas as pd

a = pd.DataFrame({"k":["a","b","b"], "x":[1,2,3]})
b = pd.DataFrame({"k":["b","c"], "y":[9,8]})
print(a.merge(b, on="k", how="outer").sort_values("k").to_dict(orient="records"))

variante(s) utile(s)

import pandas as pd

a = pd.DataFrame({"k1":[1,1,2], "k2":["x","y","x"]})
b = pd.DataFrame({"k1":[1,2], "k2":["x","x"], "v":[5,6]})
print(a.merge(b, on=["k1","k2"], how="left").to_dict(orient="records")[:2])

notes

  • Assurez-vous que les clés ont les mêmes types des deux côtés.