加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 将某些列除以pandas中的另一列

发布时间:2020-12-20 12:13:16 所属栏目:Python 来源:网络整理
导读:想知道是否有更有效的方法将多列分成某一列.比如说我有: prev open close volume20.77 20.87 19.87 96281619.87 19.89 19.56 66807619.56 19.96 20.1 57898720.1 20.4 20.53 418597 我想得到: prev open close volume20.77 1.0048 0.9567 96281619.87 1.00
想知道是否有更有效的方法将多列分成某一列.比如说我有:

prev    open    close   volume
20.77   20.87   19.87   962816
19.87   19.89   19.56   668076
19.56   19.96   20.1    578987
20.1    20.4    20.53   418597

我想得到:

prev    open    close   volume
20.77   1.0048  0.9567  962816
19.87   1.0010  0.9844  668076
19.56   1.0204  1.0276  578987
20.1    1.0149  1.0214  418597

基本上,列’打开’和’关闭’除以“prev”列的值.

我能够做到这一点

df['open'] = list(map(lambda x,y: x/y,df['open'],df['prev']))
df['close'] = list(map(lambda x,df['close'],df['prev']))

我想知道是否有更简单的方法?特别是如果有10列要被相同的值划分呢?

解决方法

df2[['open','close']] = df2[['open','close']].div(df2['prev'].values,axis=0)

输出:

prev      open     close  volume
0  20.77  1.004815  0.956668  962816
1  19.87  1.001007  0.984399  668076
2  19.56  1.020450  1.027607  578987
3  20.10  1.014925  1.021393  418597

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读