将多列除以pandas中的另一列

发布于 2021-01-29 18:35:22

我需要将DataFrame中除第一列之外的所有列除以第一列。

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

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']])但是给出了广播错误。

关注者
0
被浏览
181
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看