【问题标题】:Python inside MS SqlMS Sql 中的 Python
【发布时间】:2018-03-13 08:14:26
【问题描述】:

如何将设置的索引值作为“sp_execute_external_script”内的列以及结果集输出?

这是我的代码,我已经完成了所有计算

EXEC sp_execute_external_script
@language = N'Python',
@script = @pscript,
@input_data_1 = @sqlscript
WITH RESULT SETS(
 (
     Col1 FLOAT,
     Col2 FLOAT, 
     Col3 FLOAT 
    ));  

【问题讨论】:

  • 那么你需要将 Pandas Dataframe 的索引作为输出结果集中的一列吗?我不确定如何执行此操作,但作为一种解决方法,您可以将索引复制到 Python 脚本末尾的新列并以这种方式访问​​它吗?

标签: python sql-server tsql


【解决方案1】:

看看this relevant question。您可以将索引设置为 pandas 数据框中的一列以供输出。

在您的 python 脚本@pscript 中的输出之前,您可以添加:df.reset_index(inplace=True)

然后在您的WITH RESULT SETS 语句中,您可以在列表中首先添加索引列:

WITH RESULT SETS(
(
 MyIndex int,
 Col1 FLOAT,
 Col2 FLOAT, 
 Col3 FLOAT 
));

这是一个完整的简化示例,因为我看不到您的确切代码:

EXEC sp_execute_external_script  @language =N'Python',
@script=N'
import pandas as pd
s = pd.Series([5,6,7,8,9,10])
df = pd.DataFrame(s)
df.reset_index(inplace=True)
OutputDataSet = df
'
WITH RESULT SETS (( MyIndex int, test int ));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多