根据gene
列和alert
列来合并两个数据框(DataFrame)A和B。其中A表中的gene
和alert
列是唯一的,而B表中的gene
和alert
列不唯一:
import pandas as pd
# 假设我们有两个数据框A和B
A = pd.DataFrame({
'gene': ['gene1', 'gene2', 'gene3'],
'alert': ['alert1', 'alert2', 'alert3'],
'value_A': [10, 20, 30]
})
B = pd.DataFrame({
'gene': ['gene1', 'gene1', 'gene2', 'gene3', 'gene3'],
'alert': ['alert1', 'alert1', 'alert2', 'alert3', 'alert3'],
'value_B': [1, 2, 3, 4, 5]
})
# 使用merge函数来合并数据框,how='left'表示保留A表的所有行
# 并将匹配的B表的行添加到结果中
result = pd.merge(A, B, on=['gene', 'alert'], how='left')
print(result)
这段代码会输出一个新的dataframe,其中包含了A表的所有行,以及与之匹配的B表的行。
如果B表中有多个与A表中的某一行匹配的行,那么这些行都会在结果中出现。
输出:
gene alert value_A value_B
0 gene1 alert1 10 1
1 gene1 alert1 10 2
2 gene2 alert2 20 3
3 gene3 alert3 30 4
4 gene3 alert3 30 5