pandas dataframe的合并实现(append, merge, concat)

  • Post category:Python

当我们需要将两个或多个pandas dataframe合并时,可以使用三种方法:appendmergeconcat

pandas dataframe合并方法一:append

append方法用于将一个数据框或Series对象附加到另一个数据框的末尾。示例如下:

import pandas as pd

# 创建两个数据框df1和df2
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'A': [5, 6], 'B': [7, 8]})

# 将df2附加到df1的末尾
df = df1.append(df2)
print(df)

输出结果如下:

   A  B
0  1  3
1  2  4
0  5  7
1  6  8

可以看到,append方法将df2附加到了df1的末尾,并重新排序了索引。

pandas dataframe合并方法二:merge

merge方法用于基于一个或多个键将两个数据框的行连接起来。示例如下:

import pandas as pd

# 创建两个数据框df1和df2
df1 = pd.DataFrame({'key': ['A', 'B', 'C'], 'value': [1, 2, 3]})
df2 = pd.DataFrame({'key': ['B', 'C', 'D'], 'value': [4, 5, 6]})

# 使用键'key'将df1和df2连接起来
df = pd.merge(df1, df2, on='key', how='outer')
print(df)

输出结果如下:

  key  value_x  value_y
0   A      1.0      NaN
1   B      2.0      4.0
2   C      3.0      5.0
3   D      NaN      6.0

可以看到,merge方法将df1和df2基于键’key’连接起来,并使用outer方式保留了两个数据框中所有的行。在连接时,how参数指定了连接方式,how='outer'表示使用外连接方式,即保留合并数据框中所有的行。如果使用how='inner',则表示使用内连接方式,即只保留两个数据框中都存在的行。

pandas dataframe合并方法三:concat

concat方法用于按行或列连接两个或多个数据框。示例如下:

import pandas as pd

# 创建两个数据框df1和df2
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]})

# 按列连接df1和df2
df = pd.concat([df1, df2], axis=1)
print(df)

输出结果如下:

   A  B  C  D
0  1  3  5  7
1  2  4  6  8

可以看到,concat方法按列连接了df1和df2,并将它们组合成了一个数据框。在连接时,axis参数指定了连接方式,axis=1表示按列连接,axis=0表示按行连接。

总结一下,以上三种合并方法都有其适用场景,需要根据具体情况选择合适的方法来完成数据框的合并。