Просто сначала получите подмножество интересующего вас кадра данных:
sub_df = df.loc[(df.column1 > 0) & (df.column2 > 0)]
(sub_df.column1 - sub_df.column2 / sub_df.totalcolumn).idxmax()
Если действительно важно, чтобы он был в одной строке (как подсказывает ваш заголовок), вы могли бы выполнить фильтрацию в той же строке, но это неэффективно и не элегантно ИМО:
(df.loc[(df.column1 > 0) & (df.column2 > 0), 'column1'] -
df.loc[(df.column1 > 0) & (df.column2 > 0), 'column2'] /
df.loc[(df.column1 > 0) & (df.column2 > 0), 'totalcolumn']).idxmax()