我有一个可变数据框,当脚本在不同场合下运行并且这些值直接插入数据库时,该数据框具有可变值。 例如,在第一次运行时,它可能具有:
column1 column2
A 2
B 1
C 3
D 5
在其他运行中,它可能具有:
column1 column2
A 4
B 6
D 8
我现在可以在数据库中做什么:
column1 run1 run2
A 2 4
B 1 6
C 3 8
D 5 -
我想要的是:
column1 run1 run2
A 2 4
B 1 6
C 3 -
D 5 8
如果没有完整的代码,请帮助我找到解决方法。
答案 0 :(得分:1)
将column1
设置为索引,并连接axis=1
:
pd.concat([df1.set_index('column1'),df2.set_index('column1')],axis=1,sort=False)
#for exact_match:-> pd.concat([df1.set_index('column1'),df2.set_index('column1')],axis=1,sort=False).fillna('-')
column2 column2
A 2 4.0
B 1 6.0
C 3 NaN
D 5 8.0
答案 1 :(得分:1)
我正在用r编写,您可以将其转换为python
df1 = data.frame(col_1 = c('a','b','c','d'),col_2 = c(2,1,3,5))
df2 = data.frame(col_1 = c('a','b','d'),col_2 = c(4,6,8))
finaldf= merge(df1,df2, by = 'col_1' , all = TRUE)
您将获得以下输出
col_1 col_2.x col_2.y
a 2 4
b 1 6
c 3 NA
d 5 8
如果您不想用NA代替它。
答案 2 :(得分:1)
使用pd.merge
pd.merge(df1, df2, how= 'left', on = 'col1')