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

如何使用Pandas从数据集中提取resource列的唯一值数组

提取数据集中resource列的唯一值数组

我有一个包含多列的数据集,示例如下:

patient, action, org:resource, DateTime
patient 0, First consult, Dr. Anna, 2017-01-02 11:40:11
patient 0, Blood test, Lab, 2017-01-02 12:47:33
patient 0, Physical test, Nurse Jesse, 2017-01-02 12:53:50
patient 0, Second consult, Dr. Anna, 2017-01-02 16:21:06
patient 0, Surgery, Dr. Charlie, 2017-01-05 13:23:09
patient 0, Final consult, Dr. Ben, 2017-01-09 08:29:28
patient 1, First consult, Dr. Anna, 2017-01-02 12:50:35
patient 1, Physical test, Nurse Jesse, 2017-01-02 13:59:14
patient 1, Blood test, Lab, 2017-01-02 14:20:19
patient 1, X-ray scan, Team 1, 2017-01-06 09:13:40
patient 1, Second consult, Dr. Anna, 2017-01-06 10:38:04
patient 1, Medicine, Pharmacy, 2017-01-06 11:47:36

我希望获取一个包含resource列所有不重复值的数组,示例输出如下:

resources = ['Dr. Anna', 'Lab', 'Nurse Jesse', 'Dr. Charlie', 'Dr. Ben', 'Team 1', 'Pharmacy']

我尝试了以下代码,但这不是正确的方法,请问该如何实现?

fn = 'data2.csv'
events = pd.read_csv(fn)

events.columns = ['patient', 'action', 'resource', 'datetime']
resourcenums = [e for (i, e) in enumerate(events['resource'])]

解决方案

直接使用Pandas的unique()方法获取列中的唯一值,再通过tolist()转换为Python列表即可:

fn = 'data2.csv'
events = pd.read_csv(fn)

# 重命名列(你这里的列名映射是正确的)
events.columns = ['patient', 'action', 'resource', 'datetime']

# 获取唯一值并转为列表
resources = events['resource'].unique().tolist()
print(resources)

执行后会得到你需要的结果:

['Dr. Anna', 'Lab', 'Nurse Jesse', 'Dr. Charlie', 'Dr. Ben', 'Team 1', 'Pharmacy']

补充说明

  • unique()方法返回的唯一值顺序与它们在数据集中首次出现的顺序一致,和示例输出匹配。
  • 如果需要对结果排序,可以在转换为列表后使用sorted():
    # 排序后的唯一值列表
    sorted_resources = sorted(events['resource'].unique().tolist())
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:33:15