본문 바로가기
Data Analysis/Spotfire

[TIBCO Spotfire] Python 활용 예제 - 특정 입력값이 일치하는 행의 다른 칼럼값 가져오기

by 불탄오징어 2020. 9. 17.
반응형

 

 

 

8. Spotfire & Python 연동 활용 예제


 

8-1. 특정입력값이 일치하는 행의 다른 칼럼 값 가져오기


Spotfire에서는 특정 값을 참조하여 다른 값일 가져올 수 있도록 Join을 활용하거나 Relation을 활용하여 Drill-down을 하는 등 다양한 방법을 제공하고 있습니다. 그리고 Spotfire를 활용하여 데이터 분석하는 경우에는 데이터를 보고 특정값을 조건으로 다른 데이터를 보고자 할 경우 Filter를 활용할 수도 있습니다. 하지만 BI 성 장표를 Spotfire로 만들 경우 이런 기능들을 활용할 수가 없는데 예를 들면 코드와 코드값을 가진 테이블을 만들어 두고 특정 코드를 조회하거나 특정 코드명을 포함하는 데이터를 찾은 후 해당하는 행의 다른 값을 가져와서 조건으로 활용할 경우가 문제입니다.

 

 

사용자에게 관리자코드는 노출하지 않고 코드값으로 조회하여 이를 조건으로 다른테이블에 조건을 부여하여 값/차트 등을 노출할 경우 라고 보면 될 것 같습니다. 

 

예제 데이터로 Baseball 데이터를 활용해서 진행해보겠습니다.

 

 

먼저 Text Area를 추가하여 조건값을 부여하는 입력폼을 만들고 조회하여 가져온 값을 출력할 수 있도록 Label을 추가하겠습니다.

 

Text Area 추가 후 Input Filed 클릭

 

New Property를 test로 명명하고 String Type으로 생성

 

다음으로 result 로 명명한 Label로 추가

 

그런 다음 Action Control을 추가하여 실행할 수 있는 버튼을 만듭니다. 

 

Display text는 Run으로 명명하고 New script를 클릭하여 아래의 스크립트를 입력

 

 

from Spotfire.Dxp.Data import * 
table = Document.Data.Tables["Baseball"] 
keyColumn = table.Columns["Team"] 
tarColumn = table.Columns["Player Name"] 

result = "" 

for i in range(0, table.RowCount): 
	if keyColumn.RowValues.GetValue(i).ValidValue == Document.Properties["test"]: 
		if result == "": 
			result = tarColumn.RowValues.GetValue(i).ValidValue 
		else: 
			result = result + "'" + tarColumn.RowValues.GetValue(i).ValidValue 

Document.Properties["result"] = "'" + result + "'"

print(result)

 

여기까지 진행하면 다음과 같습니다.

 

 

Input field에 "Detroit"라고 입력한 후 Run을 클릭하면

 

 

선수들의 이름이 위와 같이 출력됩니다.

 

example.dxp
0.10MB

 

 

동일의 과거 버전 글

댓글