如何在Pandas DataFrame中根据另一列条件为新列填充值
实现方案
你可以直接用Pandas的loc条件赋值实现需求,你的C列已经初始化为空值,只需要给满足条件的行赋值即可,无需修改其他位置的值:
- 核心代码:
df.loc[df['A'] < 2, 'C'] = 'C'
代码逻辑是筛选所有A列数值小于2的行,将对应位置的C列值设为'C',其余未匹配到的行仍保持原来的空值,完全符合你给出的预期效果。
如果你需要完整可运行的测试代码,可以参考下方:
import pandas as pd import numpy as np # 构造你提供的示例数据 df = pd.DataFrame({ "A": [1,2,3,4,5,6,7,8,9,1,0,1,1,1], "B": [np.nan, "AB","AB","AB","AB","AB","AB","AB","AB", np.nan, np.nan, np.nan, np.nan, np.nan] }) # 初始化C列为空值 df["C"] = np.nan # 执行赋值操作 df.loc[df["A"] < 2, "C"] = "C" # 查看结果 print(df)
补充可选方案:如果你还没有初始化C列,也可以用np.where一次性生成目标列:
df["C"] = np.where(df["A"] < 2, "C", np.nan)
内容的提问来源于stack exchange,提问作者one_random_python_learner
相关产品推荐
相关产品推荐

