【发布时间】:2021-06-25 07:35:38
【问题描述】:
我刚开始学习 lambda,为什么我只得到 1 条件而不是 2 ?还有没有办法把这段代码写得更短?
df['numup'] = (pn> pc)& (pn.shift(-1) < pc.shift(-1))
df['nump'] = df['numup'].apply(lambda x: '1' if x == 'true' else '0')
return :
80 False
81 True
82 False
83 False
Name: numup, dtype: bool
80 0
81 0
82 0
83 0
Name: nump, dtype: object
如果我使用此代码,我会收到错误
df['numup'] = df.apply(lambda x: '1' if ((pn> pc)& (pn.shift(-1) < pc.shift(-1))) else '0')
【问题讨论】:
-
因为值是
True,而不是'true'...!?所以,'1' if x else '0'.