【发布时间】:2020-06-12 12:53:01
【问题描述】:
这是我的数据框。
如果我的“Y”变量介于上面数据框中的两个值之间(UP、DOWN),我想创建一个等于 1 的新变量。
我尝试了许多代码,但没有令人满意的结果。 这些是我尝试过的代码;
第一个:
A['DM'] = ((A.Y >A['UP']) & (A.Y <A['DOWN'])).astype(int)
第二个:A['DM']=1 if [(A['Y'] > A['DOWN']) & (A['Y'] < A['UP'])]
【问题讨论】:
-
请不要发图片。图片没用。请浏览how-to-make-good-reproducible-pandas-examples
-
您的第一个语法似乎是正确的,但您确定最终结果应该是您发布的内容吗?在我看来
0不在8.08和7.2之间? -
很抱歉我删除了它,这不是最终结果
-
那么您的第一次尝试对我来说效果很好。您也可以将结果乘以
1而不是使用astype(int):A['DM'] = 1.0 * ((A['DOWN'] <= A['Y']) & (A['Y'] <= A['UP']))
标签: python pandas range between dummy-variable