如何在 python+numpy/pandas 中使用二值化在 json 文件中创建新列

Posted

技术标签:

【中文标题】如何在 python+numpy/pandas 中使用二值化在 json 文件中创建新列【英文标题】:How to make a new column in a json file with binarization in python+numpy/pandas 【发布时间】:2020-10-18 08:35:39 【问题描述】:

我有一个包含多列的 JSON 文件,其中一列是诊断列表。我想根据该列创建一个仅包含我需要的信息的列。例如,如果我有一个列

Pneumonia
Cancer
Nodules
Nodules | Cancer
Cancer
Nodules
Pneumonia | Nodules

我想要一个只过滤掉癌症的列:

Not Cancer
Cancer
Not Cancer
Cancer
Not cancer
Not cancer

从这里开始,使用相同的方法,我将创建另一个二进制列,例如“1”表示癌症,“0”表示非癌症。

导入Json文件d后,我有:

d['Pneumonia']=d['Finding Labels']
for i in d['Finding Labels']:
    #i=i.split("|")
    if 'Pneumonia' in i:
        d['Pneumonia'].replace(i,1)
    else:
        d['Pneumonia'].replace(i,0)
d.head()

输出似乎没有替换值。有什么想法吗?

【问题讨论】:

【参考方案1】:

你可以试试explodestr.contains

s=df['diagnoses'].str.split(' | ').explode()

s=s[s.str.contains('cancer',case=False)]

如果需要分配回去

df['New']=s

【讨论】:

以上是关于如何在 python+numpy/pandas 中使用二值化在 json 文件中创建新列的主要内容,如果未能解决你的问题,请参考以下文章

使用 numpy / pandas 读取 Python 中 CSV 文件的最后 N 行

python数据分析模块:numpy、pandas全解

如何在不使用外部库(例如 Numpy、Pandas)的情况下读取 CSV 文件?

何时使用 pandas 系列、numpy ndarrays 或简单的 python 字典?

Python 中的二阶导数 - scipy/numpy/pandas

Python numpy pandas