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

基于现有列的值创建新列Winning_Time的实现方法

解决方案:创建Winning_Time列(基于Match_state条件)

假设你是用Pandas处理这份表格数据,这里有两种简单直接的方法来实现你的需求:

方法1:使用numpy.where快速赋值

这是最简洁的方式,一行代码就能完成条件判断和赋值:

import pandas as pd
import numpy as np

# 假设你的数据框名为df
df['Winning_Time'] = np.where(df['Match_state'] == 'Winning', df['Time_diff'], np.nan)

解释:

  • np.where(条件, 满足条件时的值, 不满足条件时的值):当Match_state等于Winning时,取对应行的Time_diff;否则填充NaN。
  • 如果想填充0而不是NaN,把np.nan换成0即可。

方法2:使用df.loc精准定位赋值

这种方法更直观,适合需要分步处理的场景:

# 先初始化新列为NaN
df['Winning_Time'] = np.nan
# 定位Match_state为Winning的行,赋值Time_diff
df.loc[df['Match_state'] == 'Winning', 'Winning_Time'] = df['Time_diff']

解释:

  • 先给新列Winning_Time全部填充NaN,再通过loc筛选出符合条件的行,将对应Time_diff的值赋值过去。
  • 同样,如果要填充0,把初始值换成0就行。

验证结果

运行上述代码后,你的数据框就会生成符合要求的Winning_Time列,效果和你给出的示例表格完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:54:50