将多个列除以pandas

时间:2015-12-31 03:22:06

标签: python pandas

我需要将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']]),但这会产生广播错误。

1 个答案:

答案 0 :(得分:36)

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