我有一个CSV文件,其中每一行都包含有关特定患者的一些数据,并且单个患者可以有与其相关的多行。
文件本身包含数千个患者记录,我要做的是从文件中随机选择100位患者,然后获取与它们相关的所有记录,然后将它们保存到另一个CSV文件中。
因此,该文件可能类似于:
patient_id Date Diagnosis Comments
001-001 23.12.2008 Normal Normal
001-001 23.12.2009 Normal Normal
001-002 08.11.2007 Normal Normal
001-003
....
因此,我可以将文件加载为:
frame = pd.read_csv('file.csv')
# Get the unique subjects
unique_subjects = frame['patient_id'].unique()
# Use numpy to randomly select some patients
random_us = np.random.choice(unique_subjects, 100)
然后我可以加载CSV,然后逐行检查并选择要写回CSV文件的行。
我觉得pandas
可能会提供更直接的信息,我想知道是否有一种方法可以将所有这些操作用管道传输。
答案 0 :(得分:1)
您可以使用isin
过滤所需的ID:
random_records = frame[frame['patient_id'].isnin(random_us)]