
df=pd.DataFrame({'a':[1,2,3,4,5,6,7],'b':[3,7,1]}) 所以df看起来像
a b0 1 31 2 62 3 43 4 24 5 75 6 76 7 1
我想添加一个新列res,如果a中的对应值小于2则等于0,如果a中的对应值至少为2且小于4则为1,否则为2.所以我想得到
a b res0 1 3 01 2 6 12 3 4 13 4 2 24 5 7 25 6 7 26 7 1 2
到目前为止,我一直在使用apply如下:
def f(x): if x['a']<2: return 0 elif x['a']>=2 and x['a']<4: return 1 else: return 2df['res']=df.apply(f,axis=1)
但我想知道是否有更直接的方式,或者某些特定的熊猫方法可以让我这样做.
解决方法 你可以使用pd.cut: df['res'] = pd.cut(df.a,[-np.inf,np.inf],labels=[0,1,2],right=False)
输出:
a b res0 1 3 01 2 6 12 3 4 13 4 2 24 5 7 25 6 7 26 7 1 2总结
以上是内存溢出为你收集整理的python – pandas列上的不等式全部内容,希望文章能够帮你解决python – pandas列上的不等式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)