仅将值从数据框中插入数据库到相应的行

时间:2019-03-14 07:11:29

标签: python pandas sqlite dataframe

我有一个可变数据框,当脚本在不同场合下运行并且这些值直接插入数据库时​​,该数据框具有可变值。 例如,在第一次运行时,它可能具有:

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

如果没有完整的代码,请帮助我找到解决方法。

3 个答案:

答案 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')