Data Science · मराठी आवृत्ती
8.2 merge: Orders सोबत Stores जोडा
प्रत्येक order च्या store_id वरून city आणि manager आणूया:
orders = pd.DataFrame({
"order_id": ["BLK-001", "BLK-002", "AMN-003", "BLK-004"],
"store_id": ["PUN-01", "NSK-01", "KOP-01", "PUN-99"],
"amount": [64, 90, 58, 110],
"customer": ["Ruhi Bagale", "Amir", "Zoya", "Ravina"],
})
stores = pd.DataFrame({
"store_id": ["PUN-01", "NSK-01", "KOP-01", "SLP-01"],
"city": ["Pune", "Nashik", "Kolhapur", "Solapur"],
"manager": ["Ravindra Bagale", "Shraddha Bagale", "Salman", "Raja"],
})
left = orders.merge(stores, on="store_id", how="left")
inner = orders.merge(stores, on="store_id", how="inner")
print(left)
print(len(orders), len(left), len(inner))
| how | काय राहतं? |
|---|---|
| left | सर्व orders; store सापडला नाही तर NaN — इथे PUN-99 |
| inner | फक्त दोन्ही tables मध्ये जुळणाऱ्या keys |
| right / outer | या class मध्ये कमी वापर; हे join प्रकारही उपलब्ध आहेत |
Jupyter मध्ये steps
ordersआणिstoresतयार करा.left = orders.merge(stores, on="store_id", how="left")run करा.- न जुळलेल्या rows शोधा:
left[left["city"].isna()]. - योग्य many-to-one left join मध्ये
len(left) == len(orders)आहे का तपासा.
BLK-004 / PUN-99 च्या city मध्ये NaN दिसेल. Export मधला store_id तपासण्याची ही खूण आहे.