在工作中有时需要对某个表的内容进行更新,可以使用pandas进行更新。

* 待更新内容data1及获取更新内容的目标表data2 import pandas as pd import numpy as np data1 = pd
.DataFrame(np.arange(0,25).reshape(5,5),columns= list('abcde'),index=list(
'mnopq')) data2 = pd.DataFrame(np.arange(30,46).reshape(4,4),columns= list(
'abcd'),index=list('mnop')) data2.loc[:,'a'] = np.arange(0,16,5) >>> data1 a b
c d e m0 1 2 3 4 n 5 6 7 8 9 o 10 11 12 13 14 p 15 16 17 18 19 q 20 21 22 23 24
>>> data2 a b c d m 0 31 32 33 n 5 35 36 37 o 10 39 40 41 p 15 43 44 45
* 如果data2中的a列值与data1的相同且data2中的b列值不为空,则将data1的b列更新为data2的b列值. for r1 in range(
data1.shape[0]): for r2 in range(data2.shape[0]): #只有data2的值不为空时才更新data1 if (
data1.iloc[r1]['a'] == data2.iloc[r2]['a']) and pd.isna(data2.iloc[r2]['b']) !=
True: #下面不能写为data1.iloc[r1]['b'],这样写数据不会更新 data1.iloc[r1,data1.columns == 'b'] =
data2.iloc[r2,data1.columns == 'b'] >>> data1 a b c d e m 0 31 2 3 4 n 5 35 7 8
9 o 10 39 12 13 14 p 15 43 17 18 19 q 20 21 22 23 24

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信