gpt4 book ai didi

python - 使用 Pandas 的正则表达式

转载 作者:行者123 更新时间:2023-11-30 23:02:44 24 4
gpt4 key购买 nike

使用 pandas 和 python:我正在尝试创建一个新列,如果正则表达式出现在其他指定列中,则该列显示“1”。

例如,我想创建一个标题为“Rheum”的新列,如果表达式“391.1”出现在每行的相应列“ICD”中,则该列的值为“1”。在 ICD 列的某些行中,有一些单元格具有“424.1、391.1、420.2 等”形式的各种表达式。

到目前为止我已经:

import pandas as pd 

df = pd.read_csv('example_worksheet.csv')

def ICD(c):
if c[df['ICD9'].apply(str).str.contains('391.1', na=False)] == True:
return '1'
else:
return '0'

df['Rheum'] = df.apply(ICD, axis=1)

示例数据框:

当然!示例数据框:

Patient   ICD9    
123 424.1, 391.1, 420.2
323 390.8, 420.2, 260
454 391.1, 424.2

但是,此代码会生成一个新列“Rheum”,每行仅包含“0”。

最佳答案

您可以使用str.contains:

import pandas as pd

df = pd.DataFrame({'col1':[1,2,3],'ICD':['424.1, 391.1, 420.2, etc','ABV','391.1']})

df['Rheum'] = df.ICD.str.contains('391.1').astype(int)

#Out[7]:
# ICD col1 Rheum
#0 424.1, 391.1, 420.2, etc 1 1
#1 ABV 2 0
#2 391.1 3 1

关于python - 使用 Pandas 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34375898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com