Python: Divide each row of a DataFrame by another DataFrame vector

pandas, python

Solution

In `df.divide(df2, axis='index')`, you need to provide the axis/row of df2 (ex. `df2.iloc[0]`).

import pandas as pd

data1 = {"a":[1.,3.,5.,2.],
         "b":[4.,8.,3.,7.],
         "c":[5.,45.,67.,34]}
data2 = {"a":[4.],
         "b":[2.],
         "c":[11.]}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2) 

df1.div(df2.iloc[0], axis='columns')

or you can use `df1/df2.values[0,:]`

Problem

I have a DataFrame (df1) with a dimension `2000 rows x 500 columns` (excluding the index) for which I want to divide each row by another DataFrame (df2) with dimension `1 rows X 500 columns`. Both have the same column headers. I tried: `df.divide(df2)` and `df.divide(df2, axis='index')` and multiple other solutions and I always get a df with `nan` values in every cell. What argument am I missing in the function `df.divide`?

Original source