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

如何基于Pandas DataFrame生成home_drives与home_drives_with_comfy_lead列?

解决方案:生成指定的计数列

我来帮你解决这个问题!根据你的需求,我们可以通过映射唯一编号的方式生成你需要的两列,以下是完整的代码和详细解释:

完整代码实现

import pandas as pd

# 初始化你的原始DataFrame
df = pd.DataFrame({
    "drive": [1,1,2,2,2,3,3,3,4,4,4,5,5,6,6,7,7],
    "team": ['home','home','away','away','away','home','home','home','away', 'away','away','home','home','away','away','home','home'],
    "home_comfy_lead": [0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,1,1]
})

# 1. 生成home_drives列:对home队的drive进行唯一计数
# 提取home队的唯一drive并按顺序编号(从1开始)
home_drives_unique = df[df['team'] == 'home']['drive'].drop_duplicates().sort_values()
home_drives_map = home_drives_unique.reset_index().set_index('drive')['index'] + 1
df['home_drives'] = df['drive'].map(home_drives_map).fillna(0).astype(int)

# 2. 生成home_drives_with_comfy_lead列:对满足home_comfy_lead=1的home队drive进行唯一计数
# 提取符合条件的唯一drive并按顺序编号(从1开始)
comfy_drives_unique = df[(df['team'] == 'home') & (df['home_comfy_lead'] == 1)]['drive'].drop_duplicates().sort_values()
comfy_drives_map = comfy_drives_unique.reset_index().set_index('drive')['index'] + 1
df['home_drives_with_comfy_lead'] = df['drive'].map(comfy_drives_map).fillna(0).astype(int)

# 查看最终结果
print(df)

分步逻辑解释

1. 生成home_drives列

这个列的核心逻辑是:仅统计属于team='home'的drive,对这些drive按从小到大的顺序分配唯一递增编号,非home队的行统一设为0。

  • 第一步筛选出所有home队的drive,去重后排序,确保编号顺序和drive大小一致;
  • 第二步给每个唯一drive分配从1开始的编号(通过重置索引并加1实现);
  • 最后用map把编号映射回原DataFrame,非home的drive会返回NaN,用fillna(0)填充为0并转为整数。

2. 生成home_drives_with_comfy_lead列

这个列的核心逻辑是:仅统计**至少有一行满足home_comfy_lead=1且team='home'**的drive,同样按drive大小分配唯一递增编号,其他drive设为0。

  • 第一步筛选出同时满足home队和舒适领先条件的drive,去重排序;
  • 第二步给这些符合条件的drive分配从1开始的编号;
  • 最后映射回原DataFrame,填充非符合条件的行为0。

最终验证结果

运行代码后,输出的DataFrame和你期望的完全一致:

driveteamhome_comfy_leadhome_driveshome_drives_with_comfy_lead
01home010
11home010
22away000
32away000
42away000
53home020
63home020
73home121
84away000
94away000
104away000
115home132
125home132
136away000
146away000
157home143
167home143

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:32:08