There's need to transpose. You can subtract along any axis you want on a DataFrame using its subtract method.
First, take the log base 2 ooof your dataframe., apply is fine but you can pass a DataFrame to numpy functions.
Store the log base 2 dataframe so you can use its subtract method. You can also reuse this dataframe when you take the mean of each row.
Finally subtract along the index axis. That is, For for each column of the log2 dataframe, subtract the matching mean.
log2df = np.log2(my_df)
log2mean = log2df.mean(axis='columns')
log_div_ave = log2df.subtract(log2mean, axis='index')