我有一个包含数据的DataFrame :(表1)
column1 column2(variable)
A 2
B 1
C 3
D 5
DataFrame值,即column2名称和值在每次运行脚本时都会更改。因此,让我们考虑下一次运行,数据框中的值如下:
column1 column2(variable)
A 7
B 8
C 9
D 7
我想将新的(更新的column2值添加到数据库表),以便现在数据库表变成这样:
column1 column2 column3
A 2 7
B 1 8
C 3 9
D 5 7
我可以在堆栈溢出上找到许多类似的问题,但是似乎没有一个可以解决这个问题,因为在这里,数据库表中的列数在每次运行时都在变化,同样在当前代码方案中,我无法创建临时表并按照以下说明进行移植:
Adding an extra column to (big) SQLite database from Pandas dataframe。
我的代码:
df2 = df.groupby('column1').size().reset_index(name=currentDate)
其中currentDate具有今天的日期,因此该表现在具有2列(column1和currentdate)。我想将此数据添加到数据库中已经存在的表1中(而不是表1中),而不使用新的临时表(请记住,我必须使用带有变量名(即currentDate)的SQL查询)。
答案 0 :(得分:0)
执行df.iloc[:,-1].name
来获取添加的最后一列的名称。
然后,您可以通过常规分配添加列
据我对您问题的理解: 假设df是您的原始表,并且您尝试向其中添加与df2中的最后一列同名的其他列:
df[df2.iloc[:,-1].name] = df2.iloc[:,-1]
这意味着:
#Original df
column1 column2
A 2
B 1
C 3
D 5
#Original df2
column1 NEW_NAME
A 7
B 8
C 9
D 7
#New df
column1 column2 NEW_NAME
A 2 7
B 1 8
C 3 9
D 5 7