Python pandas 找不同并更新
Python pandas find difference and update
我需要将新数据集与现有 sql 数据集进行比较,并在出现新信息时更新它们。
data from db:
dfa
id foo bar
1 2 "home"
2 5 "work"
3 6 "car"
4 99 "people"
new data:
dfb
id foo bar
1 22 "home"
2 5 "work"
8 8 "pet"
4 99 "humans"
我需要一种方法来识别 id 1 的 foo 列有一个不同的值,而 id 4 的 bar 列有一个新值。然后在将数据帧发送回数据库之前从数据库更新数据帧。我想以运行时高效的方式执行此操作。
dfout
id foo bar
1 22 "home"
2 5 "work"
3 6 "car"
4 99 "humans"
我在网上搜索了解决方案。但是我找不到我的具体案例,而且我很难将我找到的内容放入我的案例中。有人可以解释一下我会怎么做吗?
这些看起来相关,但处理的是非重叠数据和整个新行。
通过Id
使用DataFrame.update
,因此首先转换列以在两个DataFrame中建立索引:
df1 = dfa.set_index('id')
df2 = dfb.set_index('id')
df1.update(df2)
dfa = df1.reset_index().astype(dfa.dtypes)
print (dfa)
id foo bar
0 1 22 home
1 2 5 work
2 3 6 car
3 4 99 humans
我需要将新数据集与现有 sql 数据集进行比较,并在出现新信息时更新它们。
data from db:
dfa
id foo bar
1 2 "home"
2 5 "work"
3 6 "car"
4 99 "people"
new data:
dfb
id foo bar
1 22 "home"
2 5 "work"
8 8 "pet"
4 99 "humans"
我需要一种方法来识别 id 1 的 foo 列有一个不同的值,而 id 4 的 bar 列有一个新值。然后在将数据帧发送回数据库之前从数据库更新数据帧。我想以运行时高效的方式执行此操作。
dfout
id foo bar
1 22 "home"
2 5 "work"
3 6 "car"
4 99 "humans"
我在网上搜索了解决方案。但是我找不到我的具体案例,而且我很难将我找到的内容放入我的案例中。有人可以解释一下我会怎么做吗?
这些看起来相关,但处理的是非重叠数据和整个新行。
通过Id
使用DataFrame.update
,因此首先转换列以在两个DataFrame中建立索引:
df1 = dfa.set_index('id')
df2 = dfb.set_index('id')
df1.update(df2)
dfa = df1.reset_index().astype(dfa.dtypes)
print (dfa)
id foo bar
0 1 22 home
1 2 5 work
2 3 6 car
3 4 99 humans