您可以使用if语句创建变量吗?

问题描述 投票:-1回答:3

我正在尝试从STATA切换到python以进行数据分析,我遇到了一些麻烦,需要帮助。我试图基于原始变量中的某些值创建辅助变量。我想创建一个二进制变量,该变量标识值为1的坠落事故(E代码E880.xx -E888.xx)以及所有其他值为0的其他电子代码。超过10,000行,因此无法进行手动插补。

在STATA中,代码看起来像这样

newvar= 0
replace newvar = 1 if ecode_variable == "E880"
replace newvar = 1 if ecode_variable == "E881"
etc

我在python中尝试过类似的语句,但是不起作用

data['ecode_fall'] = 1 if data['ecode'] == 'E880'

这种类型的工作在python中可行吗? numpy或pandas软件包中是否有功能可以帮助解决此问题。

我还尝试过创建一个字典变量,该变量调用跌倒伤害代码1,并将其应用于该变量无济于事。

python python-3.x
3个回答
0
投票

首先放置if

if data['ecode'] == 'E880': data['ecode_fall'] = 1

0
投票

您可以将其分成两行,如下所示:

if data['ecode'] == 'E880':
    data['ecode_fall'] = 1 

或如果包含else语句,则可以将其放在一行中,类似于SATA代码的语法:

data['ecode_fall'] = 1 if data['ecode'] == 'E880' else None

0
投票

根据其他答案,您也可以像这样一次检查多个值:

if data['ecode'] in ('E880', 'E881', ...):
    data['ecode_fall'] = 1

这使您不必为if的唯一值执行一个data['ecode_fall']语句。

© www.soinside.com 2019 - 2024. All rights reserved.