当前位置:  开发笔记 > 编程语言 > 正文

将多个列除以pandas中的另一列

如何解决《将多个列除以pandas中的另一列》经验,为你挑选了1个好方法。

我需要将第一列中除第一列以外的所有列除以第一列.

这就是我正在做的事情,但我想知道这不是"正确"的熊猫方式:

df = pd.DataFrame(np.random.rand(10,3), columns=list('ABC'))

df[['B', 'C']] = (df.T.iloc[1:] / df.T.iloc[0]).T

有办法做某事df[['B','C']] / df['A']吗?(这只是给出10x12的数据帧nan.)

此外,在阅读了一些关于SO的类似问题之后,我尝试了df['A'].div(df[['B', 'C']])但是这会产生广播错误.



1> Dthal..:

我相信df[['B','C']].div(df.A, axis=0)并且df.iloc[:,1:].div(df.A, axis=0)工作.


我相信你也可以做df.loc [:, cols] = df.loc [:, cols] .div(df ['A'],axis = 0)`,只划分一部分列
无需将D列移到索引,只需执行以下操作:`df [[''B','C']] = df [['B','C']]。div(df.A,axis = 0) `。所有其他列都保留在数据框df中
推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有