Press "Enter" to skip to content

更新DataFrame函数df.update()方法的使用

df.update():使用来自另一个DataFrame的非NA值进行适当的修改。

注意:它在索引上对齐,没有返回值。

下面举个例子来说明一下这个函数的作用:

df1 = pd.DataFrame({
    'A': [125,346,74,624,225,154,336,448],
    'B': [14,None,None,11,73,None,23, 30],
})

print(df1)

结果如下:

     A     B
0  125  14.0
1  346   NaN
2   74   NaN
3  624  11.0
4  225  73.0
5  154   NaN
6  336  23.0
7  448  30.0

注意看df2的索引跟df1的有所不同

df2 = pd.DataFrame({
    'B': [1111,1111,1111,12211,1331,22222],
})
df2 = df2.iloc[1:]

print(df2)
       B
1   1111
2   1111
3  12211
4   1331
5  22222

现在我想把df2的B列数据更新到df1的B列,这个时候就可以用到update()这个函数了,具体的方法如下:

df1.update(df2)
print(df1)

结果如下:

     A        B
0  125     14.0
1  346   1111.0
2   74   1111.0
3  624  12211.0
4  225   1331.0
5  154  22222.0
6  336     23.0
7  448     30.0

由于更新,DataFrame的长度不会增加,只会更新匹配的索引/列标签上的值

update()函数还有一个overwrite参数,默认为 True

当 overwrite = True 时,df2的B列数据会全部更新到df1的B列

当 overwrite = False 时,df1的B列数据只有为空的值才会被df2的B列数据更新

df1.update(df2, overwrite = False)
print(df1)

结果如下:

     A        B
0  125     14.0
1  346   1111.0
2   74   1111.0
3  624     11.0
4  225     73.0
5  154  22222.0
6  336     23.0
7  448     30.0
发表评论

您的电子邮箱地址不会被公开。