You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中创建指定条件列?含数据示例与预期结果

嘿,我来帮你搞定这个Pandas的条件列问题!你想要新增的两列其实用groupby+transform就能轻松实现,不用复杂的操作,一起来看具体步骤:

完整解决方案
import pandas as pd
import numpy as np

# 原始数据
data = [{"owner" : "john", "dog" : 'magie', "dog_is_fluffy" : 1}, 
        {"owner" : "john", "dog" : 'stellar', "dog_is_fluffy" : 0}, 
        {"owner" : "lisa", "dog" : 'mollie' , "dog_is_fluffy" : 0}, 
        {"owner" : "lisa", "dog" : 'rex', "dog_is_fluffy" : 0}, 
        {"owner" : "john", "dog" : 'luns', "dog_is_fluffy" : 1}]
df = pd.DataFrame(data)

# 新增fluffy_dogs_owned列:统计每个主人拥有的蓬松狗狗总数
df['fluffy_dogs_owned'] = df.groupby('owner')['dog_is_fluffy'].transform('sum')

# 新增owner_has_fluffy_dog列:标记主人是否有至少一只蓬松狗狗
df['owner_has_fluffy_dog'] = np.where(df['fluffy_dogs_owned'] > 0, 1, 0)

# 查看结果
print(df)

代码细节解释

  • fluffy_dogs_owned列:groupby('owner')按主人分组后,transform('sum')会把分组统计的蓬松狗狗总数广播回原DataFrame的每一行,所以同一个主人的所有记录都会显示相同的总数,完美匹配你的需求。
  • owner_has_fluffy_dog列:用np.where做简单的条件判断——如果fluffy_dogs_owned大于0(即有至少一只蓬松狗)就返回1,否则返回0,正好实现你要的布尔标识效果。

运行这段代码后,得到的结果就和你预期的df_result完全一致啦!

内容的提问来源于stack exchange,提问作者Rachel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:23:22