当我们需要将两个或多个pandas dataframe合并时,可以使用三种方法:append
、merge
和concat
。
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
表示按行连接。
总结一下,以上三种合并方法都有其适用场景,需要根据具体情况选择合适的方法来完成数据框的合并。