target_feature_names = ['x'.join(['{}^{}'.format(pair[0], pair[1]) for pair in
    tuple if pair[1] != 0]) for tuple in [zip(input_df.columns, p) for p in
    poly.powers_]]
output_df = pd.DataFrame(output_nparray, columns=target_feature_names)
Предварительная обработка Sklearn - PolynomialFeatures - Как сохранить имена столбцов / заголовки выходного массива / кадра данных