Как установить номера строк в запросе возврата равными именам столбцов?

Я вычисляю корреляцию между столбцами в большой таблице с использованием механизма Python, встроенного в базу данных, в SQL Server 2019, и, поскольку этот расчет возвращает диагональную матрицу, я хотел бы иметь возможность просматривать результаты в SSMS со строками, помеченными как зеркально отражающие столбец. имена.

Я знаю основы SQL-запросов, но не намного дальше, так что, возможно, я не формулирую свои поиски точно.

Вот пример моего кода:

execute sp_execute_external_script 
@language = N'Python',
@script = N'
import pandas as pd
from pandas import DataFrame

df = InputDataSet.corr()
OutputDataSet = df

',
@input_data_1 = N'select GHI ,
MNO,
JKL
from PIVOTED_TIME_ID_MATRIX'

with result sets ((GHI float,
MNO float,
JKL float))

Это возвращает:

***** GHI | MNO | JKL
Row 1   1   0.5   0.5
Row 2 0.5     1   0.5
Row 3 0.5   0.5     1 

и я хотел бы увидеть:

***** GHI | MNO | JKL
GHI     1   0.5   0.5
MNO   0.5     1   0.5
JKL   0.5   0.5     1 

Это возможно?

1 ответ

Решение

Я закончил тем, что объединил совет выше, чтобы использовать df.columns, а также метод перестановки столбцов отсюда с обходным путем для получения результата, который я искал.

...'
df = InputDataSet.corr()
#puts the names of the existing columns into a new column on the end of df
df["columns"] = df.columns 
cols = df.columns.tolist()
#shift the "columns" column to the front of the dataframe
cols = cols[-1:] + cols[:-1]
df = df[cols]
OutputDataSet = df

',
@input_data_1 = N'select GHI ,
MNO,
JKL
from PIVOTED_TIME_ID_MATRIX'

with result sets ((column_names varchar(max), --add a new column in the result set
GHI float,
MNO float,
JKL float))
Другие вопросы по тегам