如何使用pandas python合并数据帧?

Sai*_*esh 1 python python-2.7 pandas

我有两个数据帧

数据1

company,values
a,76
b,56
c,78
d,56
Run Code Online (Sandbox Code Playgroud)

dataframe2

company,comp_id
a,a1
b,b1
Run Code Online (Sandbox Code Playgroud)

我需要输出如下格式

company,value,comp_id
 a,76,a1
 b,56,b1
 c,78
 d,56
Run Code Online (Sandbox Code Playgroud)

如何合并如下格式的数据帧?

jez*_*ael 5

使用mergefillna:

#fillna only column comp_id
print (pd.merge(df1,df2,on='company', how='outer').fillna({'comp_id':''}))

#fillna all dataframe
#print (pd.merge(df1,df2,on='company', how='outer').fillna(''))

  company  values comp_id
0       a      76      a1
1       b      56      b1
2       c      78        
3       d      56  
Run Code Online (Sandbox Code Playgroud)

样品:

df1 = pd.DataFrame({'values': {0: 76, 1: 56, 2: 78, 3: 56}, 
                    'company': {0: 'a', 1: 'b', 2: 'c', 3: 'd'}})
print (df1)
  company  values
0       a      76
1       b      56
2       c      78
3       d      56

df2 = pd.DataFrame({'comp_id': {0: 'a1', 1: 'b1'}, 'company': {0: 'a', 1: 'b'}},
                   columns=['company','comp_id'])
print (df2)
  company comp_id
0       a      a1
1       b      b1

print (pd.merge(df1,df2,on='company', how='outer'))
  company  values comp_id
0       a      76      a1
1       b      56      b1
2       c      78     NaN
3       d      56     NaN

#fillna only column comp_id
print (pd.merge(df1,df2,on='company', how='outer').fillna({'comp_id':''}))
  company  values comp_id
0       a      76      a1
1       b      56      b1
2       c      78        
3       d      56 
Run Code Online (Sandbox Code Playgroud)