如何在 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】:你可以试试explode
和str.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 行
如何在不使用外部库(例如 Numpy、Pandas)的情况下读取 CSV 文件?
何时使用 pandas 系列、numpy ndarrays 或简单的 python 字典?