📜  如何合并两个数据框 - Python (1)

📅  最后修改于: 2023-12-03 15:38:11.836000             🧑  作者: Mango

合并两个数据框 - Python

在数据分析和数据处理中,经常需要将多个数据框合并成一个,以便进行更深入的分析和处理。本文将介绍如何在Python中使用pandas库合并两个数据框。

合并数据框的方法

pandas库提供了多种方法来合并数据框,包括concat、merge和join等。接下来将分别介绍这三种方法的使用。

concat方法

concat方法用于沿轴连接两个或多个数据框,可以选择在行方向连接或在列方向连接。以下是concat方法的基本语法:

df_new = pd.concat([df1, df2], axis = 0/1)

其中,df1和df2是要合并的两个数据框,axis参数用于指定连接的轴,0表示在行方向连接,1表示在列方向连接。例如,以下代码将两个数据框按行维度连接:

import pandas as pd
import numpy as np

df1 = pd.DataFrame(np.random.randn(3, 2), columns=['A', 'B'])
df2 = pd.DataFrame(np.random.randn(2, 2), columns=['A', 'B'])

df_new = pd.concat([df1, df2], axis=0)

print(df_new)

输出结果为:

          A         B
0  1.328586 -0.326023
1 -0.899779 -0.664936
2 -0.254496  0.341895
0  0.297448 -0.859619
1 -0.057203 -0.566116

以上代码中,首先生成两个数据框df1和df2,然后使用concat方法将这两个数据框沿行方向连接到一起,生成一个新的数据框df_new。

merge方法

merge方法用于基于一个或多个键将两个数据框中的行连接起来。以下是merge方法的基本语法:

df_new = pd.merge(df1, df2, on = 'key')

其中,df1和df2是要合并的两个数据框,on参数指定连接的键。例如,以下代码将两个数据框基于key列进行连接:

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]})

df_new = pd.merge(df1, df2, on='key')

print(df_new)

输出结果为:

  key  value_x  value_y
0   B        2        5
1   D        4        6

以上代码中,首先生成两个数据框df1和df2,然后使用merge方法将这两个数据框基于key列连接到一起,生成一个新的数据框df_new。

join方法

join方法用于连接两个具有相同的索引的数据框。以下是join方法的基本语法:

df_new = df1.join(df2, how = 'inner')

其中,df1和df2是要合并的两个数据框,how参数用于指定连接方式。例如,以下代码将两个数据框基于相同的索引连接:

import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c'])
df2 = pd.DataFrame({'C': [7, 8, 9], 'D': [10, 11, 12]}, index=['a', 'b', 'c'])

df_new = df1.join(df2, how='inner')

print(df_new)

输出结果为:

   A  B  C   D
a  1  4  7  10
b  2  5  8  11
c  3  6  9  12

以上代码中,首先生成两个数据框df1和df2,并以相同的索引作为连接键,然后使用join方法基于相同的索引连接这两个数据框,生成一个新的数据框df_new。

总结

在本文中,介绍了三种在Python中合并两个数据框的方法,包括concat、merge和join。具体使用哪种方法需要根据实际情况进行选择。如果要连接两个具有相同索引的数据框,应使用join方法;如果要基于一个或多个键连接两个数据框,应使用merge方法;如果要沿某个轴连接两个数据框,应使用concat方法。