我正在尝试从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,并将其应用于该变量无济于事。
首先放置if
。
if data['ecode'] == 'E880': data['ecode_fall'] = 1
您可以将其分成两行,如下所示:
if data['ecode'] == 'E880':
data['ecode_fall'] = 1
或如果包含else
语句,则可以将其放在一行中,类似于SATA代码的语法:
data['ecode_fall'] = 1 if data['ecode'] == 'E880' else None
根据其他答案,您也可以像这样一次检查多个值:
if data['ecode'] in ('E880', 'E881', ...):
data['ecode_fall'] = 1
这使您不必为if
的唯一值执行一个data['ecode_fall']
语句。