
利用Pandas根据C列条件更新A列
本文介绍如何使用Python和Pandas库,根据数据框中C列的值有条件地更新A列。具体来说,如果C列存在值,则将对应行的A列值替换为C列的值。
我们将提供两种方法来实现这一目标:
方法一:使用mask()函数
import pandas as pd
import numpy as np
# 创建示例数据框
df = pd.DataFrame({
"A": [1, 2, 3, 4, 5],
"B": ["a", "b", "c", "d", "e"],
"C": [np.nan, np.nan, "x", "y", "z"]
})
# 使用mask()函数进行条件更新
df["A"] = df["C"].mask(df["C"].notna(), df["A"])
# 打印结果
print(df)
方法二:使用fillna()函数
import pandas as pd
import numpy as np
# 创建示例数据框 (与方法一相同)
df = pd.DataFrame({
"A": [1, 2, 3, 4, 5],
"B": ["a", "b", "c", "d", "e"],
"C": [np.nan, np.nan, "x", "y", "z"]
})
# 使用fillna()函数进行条件更新
df["A"] = df["A"].fillna(df["C"])
# 打印结果
print(df)
输出结果:
两种方法都会产生相同的输出:
A B C 0 1 a NaN 1 2 b NaN 2 x c x 3 y d y 4 z e z
如你所见,当C列的值为非空时,A列的对应值被C列的值替换。 注意,我们使用了np.nan来表示缺失值,这比使用None更适合于数值型数据的处理。 选择哪种方法取决于个人偏好,两者都能有效地完成任务。










