Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将多个列除以表中的另一列_Python_Pandas - Fatal编程技术网

Python 将多个列除以表中的另一列

Python 将多个列除以表中的另一列,python,pandas,Python,Pandas,我需要将数据帧中除第一列以外的所有列除以第一列 以下是我正在做的,但我想知道这是否是“正确”的方式: 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) 另外,在阅读了一些类似的问题之后,我尝试了df[

我需要将数据帧中除第一列以外的所有列除以第一列

以下是我正在做的,但我想知道这是否是“正确”的方式:

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


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

我相信
df['B','C'].div(df.A,axis=0)
df.iloc[:,1:.div(df.A,axis=0)
效果很好,但是,生成的数据框缺少上述分区中未使用的其他列。例如,如果有一列D没有除以a,则生成的数据帧缺少列D和列a。有什么方法可以克服这一点吗?我想我找到了一种方法来处理我的数据集。我使用pd.set_index()将D列移到索引中,在除法返回到数据集之后。我相信您也可以这样做:
df.loc[:,cols]=df.loc[:,cols].div(df['A',axis=0)
,只需将D列的子集除法即可:
df['B','C']=df['B','C'].div(df.A,axis=0)
。所有其他列都保留在数据帧
df
中,为什么默认情况下不广播?