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