登录
首页 >  文章 >  python教程

Pandas筛选患者数据实用技巧

时间:2025-12-13 09:18:33 308浏览 收藏

推广推荐
免费电影APP ➜
支持 PC / 移动端,安全直达

本篇文章向大家介绍《Pandas DataFrame筛选患者列表技巧》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。

Pandas DataFrame 列的向量化操作:获取满足条件的患者列表

本文介绍了如何利用 Pandas DataFrame 的向量化操作,高效地获取每列中数值大于等于 0.5 的患者列表。通过列表推导式和布尔索引,避免了显式循环,提高了代码的执行效率和可读性。掌握这些技巧,可以更便捷地进行数据分析和处理。

在数据分析中,经常需要根据DataFrame中特定列的值来筛选或提取相关信息。Pandas 提供了强大的向量化操作,可以避免使用循环,从而提高效率。本文将介绍如何使用向量化操作,从DataFrame中获取每列满足特定条件的患者列表。

核心思路

核心思路是利用Pandas的布尔索引和列表推导式。首先,使用布尔索引筛选出每列中大于等于 0.5 的行。然后,从筛选后的行中提取对应的患者 ID。最后,使用列表推导式对所有列重复此操作,生成一个包含所有列的患者列表的列表。

具体步骤

  1. 准备数据

首先,创建一个示例 DataFrame,包含患者 ID 和一些数值列:

import pandas as pd

columns = ['S1', 'S2', 'S3', 'S4', 'S5']

df = pd.DataFrame({'Patient':['p1', 'p2', 'p3', 'p4', 'p5', 'p6', 'p7', 'p8', 'p9', 'p10'],
                   'S1':[0.7, 0.3, 0.5, 0.8, 0.9, 0.1, 0.9, 0.2, 0.6, 0.3],
                   'S2':[0.2, 0.3, 0.5, 0.4, 0.9, 0.1, 0.9, 0.7, 0.4, 0.3],
                   'S3':[0.6, 0.3, 0.5, 0.8, 0.9, 0.8, 0.9, 0.3, 0.6, 0.3],
                   'S4':[0.2, 0.3, 0.7, 0.8, 0.9, 0.1, 0.9, 0.7, 0.3, 0.3 ],
                   'S5':[0.9, 0.8, 0.5, 0.8, 0.9, 0.7, 0.2, 0.7, 0.6, 0.3 ]})

print(df)
  1. 使用列表推导式和布尔索引

使用列表推导式,对每一列执行以下操作:

  • 使用 df[col] >= 0.5 创建一个布尔 Series,指示每行是否满足条件。
  • 使用布尔 Series 作为索引,筛选出 DataFrame 中满足条件的行。
  • 从筛选后的 DataFrame 中提取 'Patient' 列的值,并将其转换为列表。
patient_lists = [df.Patient[df[col] >= 0.5].to_list() for col in columns]

print(patient_lists)
  1. 结果

patient_lists 将是一个包含多个列表的列表,每个列表对应 DataFrame 的一列,包含该列中数值大于等于 0.5 的患者 ID。

[['p1', 'p3', 'p4', 'p5', 'p7', 'p9'], 
 ['p3', 'p5', 'p7', 'p8'], 
 ['p1', 'p3', 'p4', 'p5', 'p6', 'p7', 'p9'], 
 ['p3', 'p4', 'p5', 'p7', 'p8'], 
 ['p1', 'p2', 'p3', 'p4', 'p5', 'p6', 'p9', 'p8']]

注意事项

  • 确保 DataFrame 中要进行比较的列是数值类型。
  • 可以根据实际需求修改条件 df[col] >= 0.5,例如使用 df[col] > value,df[col] == value 等。
  • 如果需要去重,可以将 to_list() 替换为 unique().tolist()。

总结

通过使用 Pandas 的向量化操作,可以高效地从 DataFrame 中提取满足条件的患者列表。这种方法避免了显式循环,提高了代码的执行效率和可读性。掌握这些技巧,可以更便捷地进行数据分析和处理。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Pandas筛选患者数据实用技巧》文章吧,也可关注golang学习网公众号了解相关技术文章。

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>