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

如何在循环中从Pandas DataFrame生成对应运动的Numpy数组

按运动分组获取对应姓名的Numpy数组

首先先构建你的DataFrame:

import pandas as pd
import numpy as np

data = {"Names": ["Ray", "John", "Mole", "Smith", "Jay", "Marc", "Tom", "Rick"],
        "Sports": ["Soccer", "Judo", "Tenis", "Judo", "Tenis","Soccer","Judo","Tenis"]}
df = pd.DataFrame(data)

下面提供两种实现方案:

方案一:用groupby直接遍历分组(推荐)

这是Pandas的惯用写法,数据量较大时效率更高:

# 按Sports列分组,遍历每个分组
for sport, group in df.groupby('Sports'):
    # 将分组内的Names列转为Numpy数组
    nArray = group['Names'].to_numpy()
    # 此处编写你对nArray的处理逻辑
    print(f"运动项目:{sport}")
    print(f"对应姓名数组:{nArray}\n")

方案二:先提取独特运动再逐个筛选

如果更倾向于先拿到所有独特运动再循环,可使用此方式:

# 获取所有不重复的运动项目
unique_sports = df['Sports'].unique()

for sport in unique_sports:
    # 筛选当前运动对应的行,提取Names列转为Numpy数组
    nArray = df[df['Sports'] == sport]['Names'].to_numpy()
    # 此处编写你对nArray的处理逻辑
    print(f"运动项目:{sport}")
    print(f"对应姓名数组:{nArray}\n")

关键说明

  • to_numpy()方法可直接将Pandas的Series对象转换为Numpy数组,满足需求
  • 两种方案均可实现你描述的伪逻辑,方案一的代码更简洁且性能更优

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 18:25:17