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

如何在Python中基于行值创建新列(Pandas数据处理场景)

解决方案

首先修正原始数据集的合法构造代码(原直接赋值元组会触发Pandas报错,需改用列表):

import pandas as pd

df = pd.DataFrame()
df["collection_amount"] = [100, 200, 300]
df["25%_coll"] = [1, 0, 1]
df["75%_coll"] = [0, 1, 1]
df["month"] = [4, 5, 6]

根据规则,当25%_coll列值为1时,基于month列创建新列,以下是两种实用实现方式:

方法1:用numpy.where快速映射

import numpy as np

# 新列命名为25%_coll_month,符合条件时取month值,否则设为NaN
df["25%_coll_month"] = np.where(df["25%_coll"] == 1, df["month"], np.nan)

方法2:布尔索引赋值(更直观)

# 先初始化新列为NaN
df["25%_coll_month"] = np.nan
# 筛选出25%_coll=1的行,将对应month值赋值给新列
df.loc[df["25%_coll"] == 1, "25%_coll_month"] = df["month"]

执行后得到的结果数据集:

collection_amount25%_coll75%_collmonth25%_coll_month
1001044.0
200015NaN
3001166.0

若需要自定义默认值(比如字符串"无"、数字0),只需将代码中的np.nan替换为对应值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 11:27:27