检查一个数据框中的值是否存在于另一数据框中,打印所有对值

时间:2020-02-06 09:31:25

标签: python python-3.x pandas dataframe

我有2个数据框:

df1 = pd.DataFrame({'code': ['11', '12', '13', '14'],
                    'name': ['a', 'a', 'b', 'c']})

df2 = pd.DataFrame({'code': ['15', '16', '17', '18', '19', '20'],
                    'name': ['a',   'a', 'b',  'c',  'c',  'c']})

我需要构建一个矩阵,该矩阵将包含来自两个DataFrame的所有相同名称的代码对。 矩阵应如下所示:

pairs  value from df1     value from df2
a-a       11                15
a-a       11                16
a-a       12                15
a-a       12                16
b-b       13                17
c-c       14                18
c-c       14                19
c-c       14                20

对此表示感谢

1 个答案:

答案 0 :(得分:1)

DataFrame.mergeDataFrame.insert一起使用:

df = df1.merge(df2, on='name', suffixes=(' from df1',' from df2'))
df.insert(0, 'pairs', df['name'] + '-' + df.pop('name'))
print (df)
  pairs code from df1 code from df2
0   a-a            11            15
1   a-a            11            16
2   a-a            12            15
3   a-a            12            16
4   b-b            13            17
5   c-c            14            18
6   c-c            14            19
7   c-c            14            20