我正在使用包dfply在Python上进行数据争用。在
我想从数据集的'FC06'创建一个新变量“a06”,以便:
例如,对于输入:
df = pd.DataFrame({'FC06':[173,170,220,float('nan'),110,230,float('nan')]})
我想得到输出:
^{pr2}$在R上,可通过以下方式获得:
data_a %>% mutate(a06 = ifelse(substr(FC06,1,1)=="1",1,ifelse(substr(FC06,1,1)=="1",2,NaN)))
但我不知道如何使用Python来实现这一点。在
我实现了第一个版本,只有两个备选方案:NaN或1,以及:
data_a >> mutate(a06=if_else((X['FC06'].apply(pd.isnull)),float('nan'),1)
但是我不知道如何根据FC06的第一个字符来区分结果。在
(我尝试了如下方法:
(data_a >> mutate(a06=if_else(X['FC06'].apply(pd.isnull),float('nan'),if_else(X['FC06'].apply(str)[0]=='1',1,2))))
但是没有成功: -[0]不适用于获取第一个字符 -和/或str()不能与apply一起使用(两者都不能str.startswith(‘1’)
有人知道如何解决这种情况吗?在
或者另一个在Python上实现的包?在
谢谢你!!在
如果只有3位数字,则可以使用楼层划分:
如果有字符串,可以使用
^{pr2}$pd.Series.mask
:你会注意到你的整数变成了浮点数。这是由于
NaN
值的存在而造成的,这些值被认为是float
。一般来说,这不应该是个问题。在相关问题 更多 >
编程相关推荐