У меня есть фрейм данных со многими столбцами, и я хочу разделить его на другой фрейм данных с регулярными интервалами столбцов с минимальным использованием памяти.
Например:
df1 = pd.DataFrame([[1,2,3,4,5,6,7,8,9,10], [10,9,8,7,6,5,4,3,2,1], [2,4,3,1,6,5,7,8,9,4]])
df2 = pd.DataFrame([[1,3],[7,6],[9,3]])
Я хочу разделить df1 на df2 несколько раз через каждые два столбца.Результат, который я хотел бы получить:
finalDf = pd.DataFrame([[1/1,2/3,3/1,4/3,5/1,6/3,7/1,8/3,9/1,10/3], [10/7,9/6,8/7,7/6,6/7,5/6,4/7,3/6,2/7,1/6], [2/9,4/3,3/9,1/3,6/9,5/3,7/9,8/3,9/9,4/3]])
Я думаю, что код будет выглядеть примерно так:
df3 = df1.iloc[:, 0:2].divide(df2.iloc[:,:].values, axis = 'rows')
df4 = df1.iloc[:, 2:4].divide(df2.iloc[:,:].values, axis = 'rows')
df5 = df1.iloc[:, 4:6].divide(df2.iloc[:,:].values, axis = 'rows')
df6 = df1.iloc[:, 6:8].divide(df2.iloc[:,:].values, axis = 'rows')
finalDf = pd.concat([df3, df4, df5, df6], axis=1)
Единственный способ, которым я могу подумать, реализовать что-то подобное, это поставитьэто в цикле, но я чувствую, что это не умный способ сделать это.Есть ли способ векторизации решения?