PATIENT_ID PATHOLOGIES
12 null
12 null
3 patho1
3 null
5 patho2
2 patho1
12 null

如果可以看到,患者ID 12始终为空

推荐答案

要删除只有"null"个变量的所有患者,可以使用以下示例:

import csv
from itertools import groupby


with open("input.csv", "r") as f_in:
    reader = csv.reader(f_in)
    next(reader)  # skip header

    out = []
    for id_, g in groupby(sorted(reader), lambda k: k[0]):
        g = list(g)
        if all(pathology == "null" for _, pathology in g):
            continue
        out.extend(g)

with open("output.csv", "w") as f_out:
    writer = csv.writer(f_out)

    writer.writerow(["PATIENT_ID", "PATHOLOGIES"])
    writer.writerows(out)

这将创建output.csv个:

PATIENT_ID PATHOLOGIES
2 patho1
3 null
3 patho1
5 patho2

Python相关问答推荐

跳过嵌套JSON中的级别并转换为Pandas Rame

关于两个表达式的区别

通过追加列表以极向聚合

不允许 Select 北极滚动?

用两个字符串构建回文

从一个df列提取单词,分配给另一个列

如何在信号的FFT中获得正确的频率幅值

文本溢出了Kivy的视区

根据过滤后的牛郎星图表中的数据计算新系列

将标签与山脊线图对齐

PYODBC错误(SQL包含-26272个参数标记,但提供了235872个参数,HY 000)

是否从Python调用SHGetKnownFolderPath?

在每个子列表(2D列表)中返回2个以上的重复项

为列PANAS中的每个字符串值创建累计和列

一种获取所有相关列的极点数据帧绝对最大值的毕达式方法

在HS代码之前获取字符串:数字(不包括HS代码:某个数字)

在所有任务完成之前完成Python事件循环

在TKinter中将列表显示为多行标签

Django-如何通过两个相同的字段进行筛选或排除?

Microsoft Autogen中的流功能