看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
update()
方法用于更新一个 DataFrame 或 Series 的值,更新内容可以来自另一个 DataFrame、Series 或者字典。它的作用类似于 SQL 中的 UPDATE 操作,可以用来对已有的数据进行批量更新。
pandas.DataFrame
pandas.Series
DataFrame.def update(
self,
other,
join: UpdateJoin = "left",
overwrite: bool = True,
filter_func=None,
errors: IgnoreRaise = "ignore",
)
Series.update(other)
True
,如果设为 False
,则只更新 NaN
值。True
的元素将被更新。update()
方法直接对调用对象进行原地更新,不返回任何值。
import pandas as pd
# 创建初始 DataFrame
df1 = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
})
# 创建用于更新的 DataFrame
df2 = pd.DataFrame({
'A': [10, 20],
'B': [40, 50]
})
print("Initial DataFrame df1:")
print(df1)
print("\nUpdating DataFrame df1 with df2:")
df1.update(df2)
print(df1)
输出:
Initial DataFrame df1:
A B C
0 1 4 7
1 2 5 8
2 3 6 9
Updating DataFrame df1 with df2:
A B C
0 10 40 7
1 20 50 8
2 3 6 9
# 创建初始 DataFrame
df3 = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6]
})
# 创建用于更新的 Series
s1 = pd.Series({'A': 100, 'C': 300})
print("Initial DataFrame df3:")
print(df3)
print("\nUpdating DataFrame df3 with Series s1:")
df3.update(s1)
print(df3)
输出:
Initial DataFrame df3:
A B
0 1 4
1 2 5
2 3 6
Updating DataFrame df3 with Series s1:
A B
0 100 4
1 100 5
2 100 6
NaN
值# 创建初始 DataFrame
df4 = pd.DataFrame({
'A': [1, 2, pd.NA],
'B': [4, pd.NA, 6]
})
# 创建用于更新的 DataFrame
df5 = pd.DataFrame({
'A': [10, 20, 30],
'B': [40, 50, 60]
})
print("Initial DataFrame df4:")
print(df4)
print("\nUpdating DataFrame df4 with df5 only where NaN values exist:")
df4.update(df5, overwrite=False)
print(df4)
输出:
Initial DataFrame df4:
A B
0 1 4
1 2 <NA>
2 <NA> 6
Updating DataFrame df4 with df5 only where NaN values exist:
A B
0 1 4
1 2 50
2 30 6
update()
方法提供了一种方便的方式来对 pandas 数据结构进行批量更新。它可以用于处理需要从多个数据源合并更新信息的情况,特别是在处理大型数据集时非常有用。通过调整参数如 overwrite
和 filter_func
,可以灵活地控制更新行为。
更新时间:2024-08-07 17:35:06 标签:pandas python update