📅  最后修改于: 2023-12-03 14:51:29.508000             🧑  作者: Mango
有时候我们需要将两个Pandas DataFrame合并起来,根据某些特定的列进行合并。这是一个非常常见的操作,因此Pandas提供了很多方法来实现。
merge()方法是Pandas中最常用最灵活的方法之一。我们可以使用这个方法根据指定的一些列来合并两个DataFrame。下面是一个例子:
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
'value': [5, 6, 7, 8]})
merged_df = pd.merge(df1, df2, on='key')
print(merged_df)
输出:
key value_x value_y
0 B 2 5
1 D 4 6
在这个例子中,我们有两个DataFrame,它们都有一个“key”列和一个“value”列。我们想要根据“key”列将这两个DataFrame合并起来,因此我们使用了merge()方法,并指定on参数为“key”。
我们也可以使用join()方法来合并两个DataFrame,但是需要注意的是,join()方法只能使用DataFrame中的索引来连接。因此,在使用join()方法时,我们需要将DataFrame的索引设置为我们想要连接的列。下面是一个例子:
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
'value': [5, 6, 7, 8]})
df2.set_index('key', inplace=True)
merged_df = df1.join(df2, on='key')
print(merged_df)
输出:
key value_x value_y
0 A 1 NaN
1 B 2 5
2 C 3 NaN
3 D 4 6
在这个例子中,我们同样是根据“key”列来合并这两个DataFrame。不过这次我们使用了join()方法,首先将df2的索引设置为“key”,然后再使用join()方法来将df1和df2合并起来,并指定on参数为“key”。
除了merge()和join()方法之外,我们还可以使用concat()方法来合并两个DataFrame。concat()方法也是非常灵活的,可以根据指定的列来合并DataFrame。下面是一个例子:
import pandas as pd
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'],
'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E', 'F'],
'value': [5, 6, 7, 8]})
merged_df = pd.concat([df1.set_index('key'), df2.set_index('key')], axis=1, join='inner')
print(merged_df)
输出:
value value
B 2 5
D 4 6
在这个例子中,我们首先将df1和df2的索引分别设置为“key”,然后使用concat()方法将它们合并起来。在这个例子中,我们使用了axis参数来指定我们想要连接的轴,使用join参数来指定想要连接的方式,这里我们使用了“inner”方式,表示只连接两个DataFrame中都出现过的“key”。