1. join:默認情況下他是把行索引相同的數據合併到一起
import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.ones((2, 4)), index=["A", "B"], columns=list("abcd"))
df2 = pd.DataFrame(np.zeros((3, 3)), index=["A", "B", "C"], columns=list("xyz"))
print(df1)
print("*" * 20)
print(df2)
print("*" * 20)
print(df1.join(df2))
print("*" * 20)
print(df2.join(df1))
2. merge:按照指定的列把數據按照一定的方式合併到一起
2.1內連接
import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.ones((2, 4)), index=["A", "B"], columns=list("abcd"))
df3 = pd.DataFrame(np.arange(9).reshape(3, 3), columns=list("fax"))
print(df1)
print("*" * 20)
print(df3)
print("*" * 20)
print(df1.merge(df3, on="a"))
修改相應的值
2.2 外連接
import pandas as pd
import numpy as np
df1 = pd.DataFrame(np.ones((2, 4)), index=["A", "B"], columns=list("abcd"))
df3 = pd.DataFrame(np.arange(9).reshape(3, 3), columns=list("fax"))
df1.loc["A", "a"] = 99
print(df1)
print("*" * 20)
print(df3)
print("*" * 20)
print(df1.merge(df3, on="a", how="outer"))
2.3 左連接
print(df1.merge(df3, on="a", how="left"))
2.2 右連接
print(df1.merge(df3, on="a", how="right"))