import pandas as pd
import numpy as np
d1 = pd.DataFrame(np.arange(12).reshape(3,4),index=list("ABC"),columns=list("HIJK"))
d2 = pd.DataFrame(np.arange(12).reshape(4,3),index=list("ABCD"),columns=list("KLM"))
print(d1,"\n*******************\n",d2)
#有相同列名時,須要至少給其中一列添加後綴
print(d1.join(d2,lsuffix="_left",rsuffix="_right"))
print(d2.join(d1,lsuffix="_left",rsuffix="_right"))
d3 = pd.DataFrame(np.zeros(shape=(3,3)),columns=list("HOP"))
d3.loc[2,"H"] = 1
print(d1,"\n*******************\n",d3)
print(d1.merge(d3,on="H"))
#print(d1.merge(d3))
print(d1.merge(d3,on="H",how="outer"))
print(d1.merge(d3,on="H",how="left"))
print(d1.merge(d3,on="H",how="right"))
print(d2,"\n********************\n",d3)
print("*"*20)
print(d2.merge(d3,left_on="K",right_on="H"))#沒有相同列名時的合併
#有多個列名相同時
d3["I"] = [1.,0.,0.]
print(d1,"\n"+"*"*20+"\n",d3,"\n"+"*"*20)
print(d1.merge(d3),"\n"+"*"*20)
print(d1.merge(d3,on="H"))