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

基于滞后列值填充列 - Python实现方案咨询

实现方案(基于Python Pandas)

核心思路

用shift()方法获取上一行的Team值,对比当前行的Team判断是否发生切换,再给对应列标记1:

  • 当从away切换到home,或是第一行的home时,hpos标1
  • 当从home切换到away时,vpos标1

代码实现

import pandas as pd

# 构造初始数据表
data = {
    'Team': ['home', 'away', 'away', 'away', 'home', 'home', 'away']
}
df = pd.DataFrame(data)

# 生成滞后一行的Team列,用于前后状态对比
df['prev_team'] = df['Team'].shift(1)

# 初始化vpos和hpos列
df['vpos'] = None
df['hpos'] = None

# 标记hpos:当前是home,且要么是第一行,要么前一行是away
df.loc[(df['Team'] == 'home') & (df['prev_team'].isna() | (df['prev_team'] == 'away')), 'hpos'] = 1

# 标记vpos:当前是away,且前一行是home
df.loc[(df['Team'] == 'away') & (df['prev_team'] == 'home'), 'vpos'] = 1

# 移除辅助列prev_team,得到最终结果
df = df.drop('prev_team', axis=1)

print(df)

输出结果

Teamvposhpos
homeNone1
away1None
awayNoneNone
awayNoneNone
homeNone1
homeNoneNone
away1None

如果需要把None替换成空字符串,只需将代码里初始化和赋值的None改为''即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:10:36