Как установить номера строк в запросе возврата равными именам столбцов? - PullRequest
1 голос
/ 08 апреля 2019

Я вычисляю корреляцию между столбцами в большой таблице, используя механизм 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 Ответ

0 голосов
/ 10 апреля 2019

В итоге я совмещал приведенный выше совет по использованию 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))
...