python – pandas列上的不等式

python – pandas列上的不等式,第1张

概述我有一个pandas数据框,我想基于现有列和某些不等式创建一个新列.例如,让我们 df=pd.DataFrame({'a':[1,2,3,4,5,6,7],'b':[3,6,4,2,7,7,1]}) 所以df看起来像 a b0 1 31 2 62 3 43 4 24 5 75 6 76 7 1 我想添加一个新列res,如果a 我有一个pandas数据框,我想基于现有列和某些不等式创建一个新列.例如,让我们

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列上的不等式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1194385.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存