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

Python Pandas技术需求:按Category条件生成DataFrame新列Cat_for_Analysis

解决Pandas中根据条件生成新列的需求

嘿,这事儿好办!你要的是根据Category列的规则生成新列Cat_for_Analysis,我给你准备了两种实用的实现方法,都能完美达到你的预期效果:

  • 方法一:用numpy.where()(推荐,性能更优)
    这是矢量化操作,处理大数据集时比循环或apply高效得多,代码逻辑也简洁。
import pandas as pd
import numpy as np

# 构造你的原始DataFrame
df = pd.DataFrame({
    'Product_ID': [32432, 24085, 54398, 97456],
    'Category': ['0', 'Big Tech', 'Small Tech', '0'],
    'Sub_Cat': ['Gadget', 'Computer', 'Gadget', 'Computer']
})

# 生成目标新列
df['Cat_for_Analysis'] = np.where(df['Category'] != '0', df['Category'], df['Sub_Cat'])

注意:你的原始数据里Category列的0是字符串类型,所以判断条件用!= '0';如果你的0是数值类型,直接改成!= 0即可。

  • 方法二:用pandas.DataFrame.apply()
    这个方法逻辑更直观,适合快速理解,但处理大数据量时性能不如第一种方法。
df['Cat_for_Analysis'] = df.apply(
    lambda row: row['Category'] if row['Category'] != '0' else row['Sub_Cat'],
    axis=1
)

最终结果

不管用哪种方法,你都会得到符合预期的DataFrame:

Product_IDCategorySub_CatCat_for_Analysis
324320GadgetGadget
24085Big TechComputerBig Tech
54398Small TechGadgetSmall Tech
974560ComputerComputer

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:23:46